2010-01-22 5 views
5

Ma structure de table est comme suit:CSS pour les en-têtes de tableau, même les lignes impaires?

<table> 
<thead> 
    <tr class="navigation"> 
    </tr> 
</thead> 
<thead> 
    <tr class="headers"> 
    </tr> 
</thead> 
<tbody> 
    <tr class="even"> 
    <td><a href="#"/></td> 
    </tr> 
    <tr class="odd"> 
    </tr> 
    </tr> 
</tbody> 
</table> 

Je l'ai défini suivant CSS, comment appliquer "navigation", "tête", "même", les classes "bizarres" dans mon CSS? Comment les définir se rapportent à la classe 'table' comme 'table.even', 'table.odd'? grâce

table{ 
    font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; 
    font-size: 10px; 
    #margin: 45px; 
    width:100%; 
    text-align: left; 
    border-collapse: collapse; 
} 
+1

Vous avez quelques erreurs dans votre HTML, comme un '' supplémentaire et deux '' éléments dans la même table. Il y a aussi un # aléatoire dans votre CSS. Je suppose que ce ne sont que des erreurs de copier-coller. ;) –

Répondre

3

référence seulement la classe de l'élément parent ou l'élément parent lui-même si vous devez utiliser le nom de classe pour plus d'un type d'élément. Par exemple, ceci:

.navigation { font-weight:bold } 

... au lieu de ceci:

tr.navigation { font-weight:bold } 

Il permettra de réduire le temps de chargement lorsque le navigateur affiche la page.

Référence: Optimize browser rendering [Google Code]

+0

Dans l'intérêt de la maintenabilité future, au moins classer la table et utiliser un peu d'héritage est une bonne idée, sauf si vous êtes 100%, c'est une classe globale. – jhogendorn

1

Appliquer une classe à tout élément vous permet de faire ce qui suit:

element.className { rules } 

Avec votre TR, vous pouvez effectuer les opérations suivantes:

tr.navigation { font-weight:bold } 

créant ainsi zèbre - les stries sur vos cotes et les rangées d'événements peuvent être faites comme ceci:

tr.odd { background-color:#FFF; } 
tr.even { background-color:#CCC; } 
2

vous utiliseriez

table thead tr.navigation {} 
table thead tr.headers {} 
table tbody tr.even {} 
table tbody tr.odd {} 
+0

@devians, par ma réponse c'est complètement inefficace. Il vaut mieux utiliser .navigation pour vos lignes de table et si vous devez définir des styles différents sur un élément différent, utilisez un nom de classe différent. – jay

8

Plus simple et ne avez pas besoin de classe:

tbody tr:nth-child(odd) { 
    put your style here... 
} 

tbody tr:nth-child(even) { 
    put your style here... 
} 

J'espère que l'aide!

Questions connexes