2010-05-04 50 views

Respuesta

121

Es posible, con selectores CSS3:

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


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

Según caniuse.com, todos los navegadores soporta ahora.

+24

por moderna que quiere decir todo, pero Internet Explorer 7 y 8 –

+8

Usted probablemente querrá alcance como 'tr tbody: nth-child (incluso)' por lo que sólo se aplica a las filas en el cuerpo de la tabla y no el ' 'o' 'que por lo general tienen un estilo diferente. – craigpatik

0

(En CSS < = 2) No. Lamentablemente, no hay selectores (en CSS < = 2) que funcionen en función de la posición (en términos del número que está dentro de los hijos de sus padres) que creo que tendrían que hacer con CSS.

Nota para usted: ¡lea ya en CSS3!

0

En http://www.w3.org/TR/css3-selectors/#structural-pseudos se pueden encontrar explicaciones y ejemplos sobre el uso de 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; 
} 

Buena suerte con browser compatibility - usted lo necesite.
Hay hacks para hacerlo funcionar en IE (usando JS) - Dejaré ese cribado para ti.

+0

Ni siquiera necesita el '+ 0' en' 2n + 0' – Zac

3

Si todo lo que está cambiando es el color de fondo, entonces funcionaría lo siguiente, donde test.gif es una imagen de 40px de alto con los 20 píxeles superiores de un color y los 20 píxeles inferiores del otro color. Si necesitas cambiar cualquier otra propiedad CSS, estás atascado.

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

Ese es un enfoque singularmente inflexible. –

+0

@Mike Adler: por supuesto, pero para los navegadores que no admiten: enésimo niño, y sin js/cambios en el lado del servidor, no hay mucho que pueda hacer. – ScottE

+1

Inteligente. Sin embargo, esto molestará a los usuarios que necesiten leer textos más grandes que los que caben en la altura de la celda '20px'. – Cypher

Cuestiones relacionadas