2010-02-04 29 views
16

có lẽ tôi đang sủa cây sai. Tôi có một bảng với 6 cột, mỗi cột có một danh sách theo thứ tự. Tôi muốn tất cả chúng có một đường viền ngoại trừ danh sách đầu tiên.Chọn danh sách đầu tiên trong bảng - CSS con đầu tiên?

The site is in development here Về cơ bản mặc dù html là

<tr> 
<td> 
    <ol> 
    <li>hello</li> 
    </ol> 
</td> 
<td> 
    <ol> 
    <li>hello</li> 
    </ol> 
</td> 
<td> 
    <ol> 
    <li>hello</li> 
    </ol> 
</td> 
</tr> 

Tôi nghĩ là người đầu tiên con của tr sẽ làm việc như vậy tr:first-child ol {style}

Trả lời

24

Bộ chọn :first-child là CSS2 và không được hỗ trợ trên IE6. Nếu IE6 là quan trọng thì bạn sẽ cần phải cung cấp cho con đầu tiên một lớp mà bạn có thể chọn thay vào đó. Nhưng cú pháp đúng là:

tr td:first-child ol { ... } 

Khi bạn làm:

tr:first-child ... 

bạn đang thực sự chọn <tr> yếu tố mà trẻ em đầu tiên. Cũng lưu ý rằng:

tr :first-child ... 

là chọn con đầu tiên của hàng bảng.

+0

Cảm ơn tuyệt vời rất nhiều, hiện đang hoạt động :) Tôi không cần phải lo lắng về IE6 cho trang này (cảm ơn trời!), Cảm ơn lần nữa – morktron

+1

Hãy cẩn thận với 'tr: first-child' vì mục tiêu này bất cứ thứ gì là đứa trẻ đầu tiên trong một 'tr'. Nó có thể nhắm mục tiêu bất kỳ hình ảnh, liên kết, nhịp vv trong đánh dấu của bạn bất ngờ. Bạn gần như chắc chắn có nghĩa là: 'tr td: con đầu lòng, tr thứ: con đầu tiên' khi bạn viết điều đó. – adamnfish

+2

@adamnfish: Hoặc đơn giản là 'tr>: first-child', bởi vì trong các bảng lồng nhau, bộ chọn của bạn sẽ chọn tất cả' td' và 'th' lồng nhau là con đầu tiên ... – BoltClock

3

Đó không phải là cách nó hoạt động, tr:first-child ol chọn tr là con đầu tiên của phần tử gốc. Bạn phải sử dụng số first-child giả trên td để thay thế.

Các vấn đề liên quan