2010-05-04 10 views

Odpowiedz

121

Jest to możliwe, z selektorów CSS3:

tr:nth-child(even) { 
    background-color: red; 
} 


tr:nth-child(odd) { 
    background-color: white; 
} 

Według caniuse.com, każda przeglądarka wspiera go teraz.

+24

przez nowoczesny znaczy wszystko, ale IE7 i 8 –

+8

Można by pewnie chcą zakresu IT jako 'tbody tr: nth-child (nawet)' więc stosuje się tylko do wierszy tabeli w organizmie, a nie ' 'lub' 'które są zazwyczaj stylizowane inaczej. – craigpatik

0

(W CSS < = 2) Nie. Niestety, nie ma żadnych selektorów (w CSS < = 2), które działają w oparciu o pozycję (pod względem liczby, która jest w obrębie jej rodziców), co moim zdaniem powinieneś zrobić za pomocą tylko CSS.

Uwaga dla siebie: czytaj już na CSS3!

0

W http://www.w3.org/TR/css3-selectors/#structural-pseudos można znaleźć wyjaśnień i przykładów wykorzystania nth-child:

tr:nth-child(2n+1) /* represents every odd row of an HTML table */ { 
    background-color: green; 
} 
tr:nth-child(odd) /* same */ { 
    background-color: green; 
} 
tr:nth-child(2n+0) /* represents every even row of an HTML table */ { 
    background-color: pink; 
} 
tr:nth-child(even) /* same */ { 
    background-color: pink; 
} 

Powodzenia browser compatibility - będziesz go potrzebować.
Istnieją hacki, które działają w IE (przy użyciu JS) - Zostawię to sifting do ciebie.

+0

Nie potrzebujesz nawet '+ 0' na' 2n + 0'' – Zac

3

Jeśli wszystko, co zmienisz, to kolor tła, to wtedy zadziała poniższy test, gdzie test.gif jest wysokim obrazem o rozmiarze 40 pikseli, górnym 20 pikseli jednym kolorem, a dolny 20 pikseli innym kolorem. Jeśli chcesz zmienić inne właściwości css, to prawie utknąłeś.

table { background: url(test.gif) top; } 
table tr { height: 20px; } 
+7

To jest wyjątkowo mało elastyczne podejście. –

+0

@Mike Adler - absolutnie, ale dla przeglądarek, które nie obsługują: nth-child, i bez zmian po stronie js/serwera, niewiele można zrobić. – ScottE

+1

Sprytny. Mimo to będzie denerwować użytkowników, którzy muszą czytać większe rozmiary tekstu, niż zmieści się w wysokości komórki "20px". – Cypher

Powiązane problemy