2012-05-04 26 views
57

Nó phải rất đơn giản nhưng tôi không thể tìm ra.Áp dụng kiểu cho các ô của hàng đầu tiên

Tôi có một bảng như thế này:

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

Tôi muốn làm td thẻ của tr hàng đầu tiên có vertical-align. Nhưng không phải hàng thứ hai.

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

http://stackoverflow.com/question/613284/css-apply-style-to-first-level-of-td-chỉ –

+0

Vâng tôi đã thấy trang đó trước khi đặt câu hỏi, Nó không hoạt động. – xperator

Trả lời

124

Sử dụng tr:first-child để có những tr đầu tiên:

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

Nếu bạn đã lồng bàn, và bạn không muốn áp dụng phong cách để các hàng bên trong, thêm một số bộ chọn con nên chỉ đầu -level td s trong lần đầu tiên top-level tr có được phong cách:

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

Thực ra tôi đã thử điều này trước đây, nó không hoạt động. Không chắc chắn lý do tại sao. – xperator

+0

Tôi cũng không biết. Tôi có 100% tự tin rằng điều này làm việc cho tất cả các trình duyệt chính. – BoltClock

+0

Khi tôi so sánh các thẻ 'td' của hàng đầu tiên và hàng thứ hai trong FireBug, tôi có thể thấy hàng đầu tiên Thừa kế kiểu nhưng hàng thứ hai thì không. Tôi không biết tại sao hàng thứ hai được căn chỉnh theo chiều dọc! – xperator

3

này nên làm việc:

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

Dưới tác phẩm cho tr đầu tiên của bảng dưới thead

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

Và điều này làm việc cho tr đầu tiên của theadtbody cả:

table thead tbody tr:first-child { 
    background: #f2f2f2; 
} 
Các vấn đề liên quan