115 votes

La manière la plus courante d'écrire un tableau HTML avec des en-têtes verticaux?

Salut à tous, ça fait un moment depuis que j'ai demandé quelque chose, c'est quelque chose qui a été me tracasse depuis un moment, la question est dans le titre:

Quelle est votre façon préférée de l'écriture de code HTML des tables qui ont des embases verticales?

Par vertical en-tête, je veux dire que le tableau a de l'en-tête (<th>) étiquette sur le côté gauche (en général)

1 en-tête de données de données de données
L'en-tête 2 données de données de données
L'en-tête 3 données de données de données

Ils ressemblent à ceci, jusqu'à présent, je suis venu avec deux options

Première Option

   
    <table id="vertical-1">
            <caption>First Way</caption>
            <tr>
                <th>Header 1</th>
                <td>data</td><td>data</td><td>data</td>
            </tr>
            <tr>
                <th>Header 2</th>
                <td>data</td><td>data</td><td>data</td>
            </tr>
            <tr>
                <th>Header 2</th>
                <td>data</td><td>data</td><td>data</td>
            </tr>
        </table>
   

Le principal avantage de ce mode est que vous avez les en-têtes de droit (en fait, à gauche) à côté des données qu'il représente, ce que je n'aime pas, cependant, est que l' <thead>, <tbody> et <tfoot> tags manquants, et il n'y a aucun moyen de les inclure sans casser la nicelly placés ensemble des éléments qui me conduisent à la deuxième option.

Deuxième Option

   
        <style type="text/css">
            #vertical-2 thead,#vertical-2 tbody{
                display:inline-block;
            }

        </style>
        <table id="vertical-2">
            <caption>Second Way</caption>
            <thead>
                <tr>
                    <th colspan="3">Header 1</th>
                </tr>
                <tr>
                    <th colspan="3">Header 2</th>
                </tr>
                <tr>
                    <th colspan="3">Header 3</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>row 1</td>
                    <td>row 1</td>
                    <td>row 1</td>
                </tr>
                <tr>
                    <td>data</td>
                    <td>data</td>
                    <td>data</td>
                </tr>
                <tr>
                    <td>data</td>
                    <td>data</td>
                    <td>data</td>
                </tr>
            </tbody>
            <tfoot>
                <tr>
                    <td colspan="4">Footer</td>
                </tr>
            </tfoot>
        </table>
   

Le principal avantage ici est que vous avez entièrement descriptif de la table html, les inconvénients sont que la représentation appropriée besoin d'un peu de CSS pour l' tbody et thead balises et que la relation entre les en-têtes et les données n'est pas très clair comme j'avais des doutes lors de la création de l'annotation.


Ainsi, les deux façons de rendre le tableau de la façon dont il devrait, ici un pitcure:

render
Avec les en-têtes sur le côté droit ou gauche si vous préférez, donc, des suggestions, des solutions de rechange, les problèmes de navigateur?

55voto

Francois Deschenes Points 15809

Tout d'abord, votre deuxième option n'est pas tout à fait valide en HTML, dans le sens que toutes les lignes (TR) dans un tableau doit comporter un nombre égal de colonnes (TD). Votre tête a 1 tandis que le corps a 3. Vous devez utiliser l'attribut colspan pour résoudre ce problème.

Référence: "Le THEAD, TFOOT et TBODY les sections doivent contenir le même nombre de colonnes." - Dernier alinéa de l'article 11.2.3.

Avec cela étant dit, la première option est la meilleure approche à mon avis parce que c'est lisible indépendamment de si oui ou non j'ai CSS activé. Certains navigateurs (ou robots des moteurs de recherche) ne pas faire en CSS et en tant que tel, il fera de vos données n'ont pas de sens tant que l'en-tête ne représentent alors des colonnes au lieu de lignes.

6voto

La première option ... Je pense que c'est l'approche la meilleure et la plus simple ..

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X