IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Convertir une table en CSS


Sujet :

Tableau en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut Convertir une table en CSS
    Bonjour à tous,

    J'ai réalisé des boites de texte, avec des bordures spéciales. Étant plus facile pour moi, j'ai fait la conception avec des tables, mais j'aimerais les convertir en pure CSS, et je n'y arrive pas

    Voici les styles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    td.TopLeft 
    {
        background-image :url(images/TopLeft.gif);
        background-repeat :no-repeat;
        width :14px;
        height 12px;
    }
    td.TopCenter
    {
        background-image :url(images/TopCenter.gif);
        background-repeat :repeat-x;
        height :12px;
    }
    td.TopRight
    {
        background-image :url(images/TopRight.gif);
        background-repeat :no-repeat;
        width :14px;
        height 12px;
    }
     
    td.MiddleLeft 
    {
        background-image :url(images/MiddleLeft.gif);
        background-repeat :repeat-y;
        width :14px;
    }
    td.MiddleCenter
    {
     
    }
    td.MiddleRight
    {
        background-image :url(images/MiddleRight.gif);
        background-repeat :repeat-y;
        width :14px;
    }
     
    td.BottomLeft 
    {
        background-image :url(images/BottomLeft.gif);
        background-repeat :no-repeat;
        width :14px;
        height : 4px;
    }
    td.BottomCenter
    {
        background-image :url(images/BottomCenter.gif);
        background-repeat :repeat-x;
        height :4px;
    }
    td.BottomRight
    {
        background-image :url(images/BottomRight.gif);
        background-repeat :no-repeat;
        width :14px;
        height :4px;
    }
    Voici la table faisant office de petite boîtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <table border="0px" cellpadding="0" cellspacing="0">
    <tr>
        <td class="TopLeft"></td>
        <td class="TopCenter"></td>
        <td class="TopRight"></td>
    </tr>
    <tr>
        <td class="MiddleLeft"></td>
        <td class="MiddleCenter">
             Coucou !!!<br>
             Ligne #2 !!!
        </td>
        <td class="MiddleRight"></td>
    </tr>
    <tr>
        <td class="BottomLeft"></td>
        <td class="BottomCenter"></td>
        <td class="BottomRight"></td>
    </tr>
    </table>
    J'aimerais la convertir... du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <div style="width : 100%"> 
      <div class="TopLeft"></div>
      <div class="TopCenter"></div>
      <div class="TopRight"></div>
     
      <div class="MiddleLeft"></div>
      <div class="MiddleCenter">Bonjour à tous....</div>
      <div class="MiddleRight"></div>
     
       ...
    </div>
    Une des emmerde avec ça, c'est que TopCenter n'aura jamais la même largeur variable que MiddleCenter

    Bref, j'aurais vraiment besion d'aide sur celle-là

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Qu'est ce que tu entends pas CSS pur ?
    J'avoue que c'est un peu confus...
    Le CSS sert à mettre en forme les balises HTML, il n'y a pas vraiment de STRUCTURE CSS...

    Et les tables c'est très bien, qu'est-ce que tu leur reproches ? ^^

  3. #3
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Salut,
    Citation Envoyé par Er3van Voir le message
    Et les tables c'est très bien, qu'est-ce que tu leur reproches ? ^^
    Les tables c'est bien pour faire des tableaux, or dans le code proposé on ne voit pas plusieurs lignes. On peut donc en déduire que les tables sont utilisées pour de la mise en page.

    Une solution serait de faire des div conteneurs de colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <div style="width : 100%"> 
    <div id="left">
      <div class="TopLeft"></div>
      <div class="MiddleLeft"></div>
      <div class="BottomLeft"></div>
    </div>
    <div id="middle">
      <div class="TopCenter"></div>
      <div class="MiddleCenter">Bonjour à tous....</div>
      <div class="BottomCenter">Bonjour à tous....</div>
    </div>
    <div id="right">
      <div class="TopRight"></div>
       <div class="MiddleRight"></div>
       <div class="BottomRight"></div>
    </div>
    </div>
    Le problème, apparemment, devient un problème d'accessibilité. Une règle accessiweb stipulant que l'ordre du contenu dans le code html devrait être que son rendu. Or BottomLeft vient avant TopCenter alors que dans le navigateur on verrait TopLeft directement suivi de TopCenter.

    Enfin, je suis nul en accessibilité.

  4. #4
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    Er3van : Par pure CSS, j'enttendais des DIV, tout sauf une table.

    En fait aussi les tables me gêne souvent lorsque vient le temps d'effectuer la mise en page côté IMPRESSION. Et comme franculo_caoulene l'a dit ; Dans ce cas-ci, ce n'est pas pour faire des tableaux mais plutôt pour de la mise en forme et de l'esthétique...

    franculo_caoulene : J'aime bien votre solution, mais pour l'essayer il me faudrait savoir qu'elle est la définition des classes "left", "middle", et "right" ?

  5. #5
    Membre Expert
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Par défaut
    Citation Envoyé par Erakis Voir le message
    J'ai réalisé des boites de texte, avec des bordures spéciales.
    Serait-il possible de voir le visuel final souhaité ?
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et :resolu: si c'est le cas

  6. #6
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    Biensur

    Cependant, il faut vous dire que j'ai plusieurs DIFFÉRENT encadrés pour ce site web. Dans ce cas-ci, le coin haut droit est coupé en 45° et le fond est transparent. Dans d'autres cas, c'est le coin gauche qui est coupé et la couleur de fond est unie. Et dans la pluspart des cas, l'encadré doit s'adapter au contenu, donc il doit être extensible (élastique).
    Images attachées Images attachées  

  7. #7
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    J'ai fait plusieurs recherche sur Internet mais en vain... Quelqu'un d'autre à une solution ?

  8. #8
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Je ne comprends pas, ton image montre bel et bien un tableau. Pourquoi essayer d'utiliser des div à la place?

  9. #9
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    En fait tu as raison sur ce point, à l'intérieur c'est effectivement un tableau.

    Sauf que cette bordure doit être appliquée autour de ce tableau. Ces tableaux sont fait des GridView (ASP.NET).

    Lorsque viendra le temps d'imprimer ces tableau, je ne voudrai pas de ces bordures, avec des DIV je crois que ce sera beaucoup plus facile qu'avec une table. Sinon je devrai faire quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    .TopLeft 
    {
         height : 0px;
         height : 0px;
         border : none; 
    }
    De sorte qu'il soit invisible et ne prenne pas de place sur la feuille d'impression.

Discussions similaires

  1. convertir une table html en image
    Par chaker11 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 14/06/2014, 12h14
  2. Réponses: 12
    Dernier message: 13/09/2013, 10h06
  3. script pour convertir une table HTML en fichier CSV (ou excel)
    Par whitespirit dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 20/08/2008, 08h30
  4. [CSS]probleme de style sur cellules dans une table
    Par luimême dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 17/01/2006, 12h13
  5. Convertir une table ACCESS vers PARADOX
    Par BernardM dans le forum Paradox
    Réponses: 1
    Dernier message: 09/12/2004, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo