2012-05-04 23 views
57

To powinno być bardzo proste, ale nie mogę tego rozgryźć.Zastosuj styl do komórek pierwszego rzędu.

Mam tabeli tak:

<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> 

Chcę, aby td etykietki z pierwszego rzędu mają vertical-aligntr. Ale nie w drugim rzędzie.

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

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

+0

Tak, widziałem tę stronę zanim zadałem pytanie, To nie działało. – xperator

Odpowiedz

124

Zastosowanie tr:first-child wziąć pierwszą tr:

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

Jeśli masz zagnieżdżone tabele, a ty nie chcesz zastosować style do wewnętrznych rzędach, dodać kilka selektorów potomnych więc tylko górna -level td s w pierwszym górnym poziomie tr uzyskać style:

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

Właściwie próbowałem tego wcześniej, to nie działa. Nie pewny dlaczego. – xperator

+0

Ja też nie wiem. Mam 100% pewności, że działa to dla wszystkich głównych przeglądarek. – BoltClock

+0

Kiedy porównałem tagi 'td' pierwszego i drugiego rzędu w FireBug, widzę pierwszy wiersz Odziedziczony styl, ale drugi wiersz nie ma. Nie wiem, dlaczego drugi rząd jest wyrównany pionowo! – xperator

3

ten powinien wykonać pracę:

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

Poniżej prac dla pierwszego tr stołu pod thead

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

I to działa dla pierwszego tr z thead i tbody zarówno:

table thead tbody tr:first-child { 
    background: #f2f2f2; 
} 
Powiązane problemy