2012-09-11 10 views
20

Necesito hacer que cada dos filas de mi tabla sean grises y preferiría usar nth-child si fuera posible.nth-child por cada dos filas de tablas

He tenido problemas con Chris Coyier's nth-child tester pero todavía no puedo conseguirlo.

necesito la siguiente fórmula:

1,2 - grey 
3,4 - white 
5,6 - grey 
7,8 - white 
9,10 - grey 

y así sucesivamente. Preferiría no poner una clase en el html, ya que estoy seguro de que va a ser una sugerencia de algunos. Si hay una manera de llevarlo a cabo con n-child, eso es lo que estoy buscando.

+1

Por favor, publique su código, ¿qué ha intentado? – ews2001

Respuesta

65

Date cuenta de que estás haciendo grupos de 4, entonces puedes ver que puedes tener cada cuarto elemento y cada cuarto elemento menos uno siendo blanco, luego cada cuarto elemento menos dos, o cada cuarto elemento menos 3 siendo gris.

Por lo tanto, tendrá que utilizar 4n y 4n-1, entonces 4n-2 y 4n-3:

div:nth-child(4n), div:nth-child(4n-1) { 
    background: red; 
} 
div:nth-child(4n-2), div:nth-child(4n-3) { 
    background: blue; 
} 

Ese código no es precisa para su caso, lo escribí para un jsFiddle proof-of-concept.

NB descargo de responsabilidad: Tenga en cuenta que nth-child no funciona en IE8. Problema típico, por supuesto.

+0

Es casi como si * intencionalmente * se alejara de su caso cambiando los elementos * y * los colores: P – BoltClock

+1

@BoltClock Lindo ... Pero 'div's tiene menos marcas que' table's 'y' blue'/'rojo' es más fácil de ver. ;) – Eric

+0

Agradezco la solución aquí, pero en realidad necesito la tabla porque es una presentación del contenido en forma de hoja de cálculo. Tendré esto en cuenta, y si vuelvo, me complacerá aceptar la respuesta. – brianrhea

1

Esto es lo que estoy usando para alinear a la derecha la primera columna de cada tabla.

table td:nth-child(2n-1) { 
    align: right; 
    text-align: right; 
} 
Cuestiones relacionadas