2012-05-04 4 views
57

Это должно быть очень просто, но я не могу понять это.Применить стиль к ячейкам первого ряда

У меня есть таблица вроде этого:

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

Я хочу сделать td теги первого tr строки имеют vertical-align. Но не второй ряд.

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

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

+0

Да, я видел эту страницу, прежде чем задавать вопрос, Она не работала. – xperator

ответ

124

Используйте tr:first-child взять первый tr:

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

Если у вас есть вложенные таблицы, и вы не хотите, чтобы применить стили к внутренним рядам, добавить некоторые дочерние селекторы так только сверху td s уровня в первом верхнем уровне tr получить стили:

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

На самом деле я пробовал это раньше, он не работает. Не знаю, почему. – xperator

+0

Я тоже не знаю. У меня есть 100% уверенность, что это работает для всех основных браузеров. – BoltClock

+0

Когда я сравниваю теги td в первой и второй строках в FireBug, я вижу первую строку Inherited style, но во второй строке нет. Я не знаю, почему вторая строка выровнена по вертикали! – xperator

3

Это должно сделать работу:

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

Ниже работ для первого tr стола под thead

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

И это работает для первого tr из thead и tbody как:

table thead tbody tr:first-child { 
    background: #f2f2f2; 
} 
Смежные вопросы