2010-02-04 10 views
16

Może szczerzę złe drzewo. Mam tabelę z 6 kolumnami, każda z uporządkowaną listą. Chcę, żeby wszyscy mieli granicę z wyjątkiem pierwszej listy.Wybierz pierwszą listę w tabeli - pierwsze dziecko CSS?

The site is in development here Zasadniczo choć HTML jest

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

Myślałem, że pierwszym dzieckiem tr będzie działać podobnie jak tr:first-child ol {style}

Odpowiedz

24

Selektor :first-child jest CSS2 i nie jest obsługiwana w IE6. Jeśli IE6 jest ważny, musisz podać pierwszemu dziecku klasę, na którą możesz wybrać. Ale poprawna składnia jest:

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

Kiedy zrobić:

tr:first-child ... 

jesteś rzeczywiście wybierając <tr> elementy pierwsze dzieci. Również należy pamiętać, że:

tr :first-child ... 

jest wybranie pierwszego dzieciom z tabeli wiersze.

+0

Bardzo dziękuję, działa teraz :) Nie muszę się martwić o IE6 na tej stronie (dziękuję niebiosom!), Jeszcze raz dziękuję – morktron

+1

Uważaj na 'tr: first-child' ponieważ te cele wszystko, co jest pierwszym dzieckiem w 'tr'. Może nieoczekiwanie zaatakować wszelkie obrazy, linki, spany itp. W twoim znaczniku. Prawie na pewno masz na myśli: 'tr td: first-child, tr th: first-child', kiedy to piszesz. – adamnfish

+2

@adamnfish: Lub po prostu 'tr>: first-child', ponieważ w tabelach zagnieżdżonych twój selektor wybrałby wszystkie zagnieżdżone' td' i 'th', które również są pierwszymi dziećmi ... – BoltClock

3

To nie tak działa, tr:first-child ol wybiera tr, który jest pierwszym dzieckiem swojego elementu nadrzędnego. Zamiast tego należy użyć pseudoklasy first-child na td.

Powiązane problemy