¿Cómo mostrar los primeros N elementos de un bloque y ocultar los demás en css?
Estoy tratando de ocultar los primeros 3 elementos que tienen la clase .row
dentro del bloque .container
.
Lo que estoy haciendo es ocultar todos los .row
primero, y luego estoy tratando de mostrar los primeros 3 .row
usando .row:nth-child(-n+3)
Jsfiddle aquí: http://jsfiddle.net/z8fMr/1 /
Tengo dos problemas aquí:
- La fila 3 no se muestra, ¿estoy usando nth-child de manera incorrecta?
- ¿Hay una mejor práctica que ocultar todo y luego crear un regla para mostrar los n primeros elementos que quiero? ¿Hay alguna forma en css de mostrar los primeros 3
.row
y luego ocultar todos los demás.row
?
Gracias.
3 answers
-
Usted tiene un
.notarow
como el primer hijo, por lo que tiene que tener en cuenta que en su fórmula:nth-child()
. Debido a eso.notarow
, su primer.row
se convierte en el segundo hijo en general del padre, por lo que tiene que contar a partir del segundo al cuarto:.row:nth-child(-n+4){ display:block; }
Lo que estás haciendo está bien.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-12 12:34:54
Ni siquiera necesitas selectores CSS3:
.row + .row + .row + .row {
display: none;
}
Esto debería funcionar incluso en IE7.
Fiddle actualizado
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-13 17:28:54
También, como la solución de Giovanni, algo como esto también podría funcionar.
.container > .row:nth-child(3) ~ .row {
/* this rule targets the rows after the 3rd .row */
display: none;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-21 13:34:22