2012-05-04 1 views
57

Dovrebbe essere molto semplice ma non riesco a capirlo.Applicare lo stile alle celle della prima riga

Ho una tabella come questa:

<table class="category_table"> 
<tr><td> blabla 1</td><td> blabla 2 </td></tr> 
<tr><td> blabla 3 </td><td> blabla 4 </td></tr> 
</table> 

Voglio fare td Tags di prima fila hanno trvertical-align. Ma non la seconda fila.

.category_table td{ 
    vertical-align:top; 
} 
+0

http://stackoverflow.com/questions/613284/css-apply-style-to-first-level-of-td-only –

+0

Sì, ho visto quella pagina prima di fare una domanda, non funzionava. – xperator

risposta

124

Usa tr:first-child per scattare la prima tr:

.category_table tr:first-child td { 
    vertical-align: top; 
} 

Se si è annidato le tabelle, e non si vuole applicare gli stili ai file interne, aggiungere alcuni selettori bambino in modo che solo la parte superiore -Level td s nel primo livello superiore tr ottenere gli stili:

.category_table > tbody > tr:first-child > td { 
    vertical-align: top; 
} 
+0

In realtà ho provato prima, non funziona. Non so perché. – xperator

+0

Non lo so neanche io. Ho il 100% di fiducia che funzioni per tutti i principali browser. – BoltClock

+0

Quando confronto i tag 'td' della prima e della seconda riga in FireBug, posso vedere la prima riga ereditata dallo stile ma la seconda riga no. Non so perché la seconda fila sia allineata verticalmente! – xperator

3

Questo dovrebbe fare il lavoro:

.category_table tr:first-child td { 
    vertical-align: top; 
} 
0

Sotto lavori per il primo tr della tabella al thead

table thead tr:first-child { 
    background: #f2f2f2; 
} 

E questo funziona per la prima tr di thead e tbody entrambi:

table thead tbody tr:first-child { 
    background: #f2f2f2; 
}