2010-05-04 1 views

risposta

121

E 'possibile, con selettori CSS3:

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


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

Secondo caniuse.com, tutti i browser supporta ora.

+24

dalla moderna vuol dire tutto, ma IE7 e 8 –

+8

che vorreste probabilmente a scopo come 'tbody tr: nth-child (anche)' quindi si applica solo alle righe nel corpo tavola e non il ' 'o' 'che sono di solito in stile diverso. – craigpatik

0

(in CSS < = 2) No. Sfortunatamente non ci sono selettori (in CSS < = 2) che operano in base alla posizione (in termini di numero che è all'interno dei figli dei genitori), che ritengo sia necessario farlo con solo CSS.

Nota per sé: leggi su CSS3, già!

0

In http://www.w3.org/TR/css3-selectors/#structural-pseudos si possono trovare spiegazione ed esempi sull'uso 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; 
} 

Buona fortuna con browser compatibility - ne avrai bisogno.
Ci sono hack per farlo funzionare in IE (usando JS) - Lascerò che setacciare a voi.

+0

Non hai nemmeno bisogno di '+ 0' su' 2n + 0' – Zac

3

Se tutto quello che stai cambiando è il colore di sfondo, allora funzionerebbe il seguente, dove test.gif è un'immagine alta 40px con il 20px superiore di un colore, e il 20 pixel inferiore l'altro colore. Se hai bisogno di cambiare altre proprietà CSS sei praticamente bloccato.

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

Questo è un approccio singolarmente inflessibile. –

+0

@Mike Adler - assolutamente, ma per i browser che non supportano: nth-child e senza modifiche js/server side non c'è molto che tu possa fare. – ScottE

+1

Intelligente. Tuttavia, ciò infastidirà gli utenti che hanno bisogno di leggere dimensioni di testo più grandi di quelle che si adattano all'altezza della cella '20px'. – Cypher