2013-04-26 36 views
5

Có thể áp dụng một quy tắc tại <th> đầu tiên của <tr> đầu tiên nếu có 2 hoặc nhiều <tr> trong <thead>?css: áp dụng quy tắc trên <th> đầu tiên <tr> nếu có 2 <tr>

tôi đã làm:

table tr:first-child th:first-child 

nhưng nếu chỉ có 1 <tr> là ti áp dụng anyway.

+0

Nếu bạn có một số phong cách mặc định, bạn có thể áp dụng nó cho 'tr: chỉ con thứ: first-child' để "ghi đè" trong trường hợp chỉ có trẻ em. – Passerby

Trả lời

7

Bạn có thể sử dụng một sự kết hợp của :not():only-child selectors như vậy:

tr:first-child:not(:only-child) th:first-child { 
    color:red; 
} 

Mã là tương đối tự giải thích, nó sẽ chỉ ảnh hưởng đến đứa con đầu lòng nếu nó không phải là một đứa con duy nhất.

DEMO

Nó có tương đối xấu support tuy nhiên, bạn có thể cần một javascript polyfill để bù đắp cho nó nếu bạn cần hỗ trợ IE8 hoặc thấp hơn.

+0

tốt nhất :) @Andy – Ashwin

+0

tôi thấy rằng điều này làm những gì tôi cần. vì vậy nó chỉ hoạt động cho trình duyệt mới và cho IE> = 8? – Atomico

+1

@Atomico No, [dành cho IE> 8 (tức là> IE> = 9)] (https://developer.mozilla.org/en-US/docs/CSS/:not#Browser_compatibility). – Passerby

0

Tôi không nghĩ rằng điều này là có thể mà không cần sử dụng css class. Nếu bạn đang tạo động của tr. Tôi muốn giới thiệu để làm như sau:

if(condition for rows > 2) { 
    <tr><th class="applyCSS"></th><th></th></tr> 
    <tr><th></th><th></th></tr> 
    ...... 
} 
else {  //only one tr 
    <tr><th></th><th></th></tr> 
} 

CSS:

applyCSS { .... } 
Các vấn đề liên quan