Как показать первые N элементов блока и скрыть остальные в css?
Я пытаюсь скрыть первые 3 элемента, имеющие класс .row
внутри блока .container
.
то, что я делаю, скрывает все .row
сначала, а затем я пытаюсь отобразить первые 3 .row
с помощью .row:nth-child(-n+3)
jsfiddle здесь:http://jsfiddle.net/z8fMr/1/
у меня есть две проблемы:
- строка 3 не отображается, я использую nth-child неправильно?
- есть ли лучше практика, чем скрывать все, а затем создавать конкретное правило для отображения n первых элементов, которые я хочу? Есть ли способ в css просто отобразить первые 3
.row
и затем скрыть все остальные.row
?
спасибо.
3 ответов
-
у вас
.notarow
как первый ребенок, поэтому вы должны учитывать, что в:nth-child()
формула. Потому что.notarow
, первый.row
будет второй ребенок, отношение родителей, поэтому вы должны рассчитывать, начиная со второго по четвертый:.row:nth-child(-n+4){ display:block; }
то, что вы делаете, прекрасно.
вам даже не нужны селекторы CSS3:
.row + .row + .row + .row {
display: none;
}
Это должно работать даже в IE7.
обновленный скрипку
кроме того, как и решение Джованни, что-то вроде этого также может работать.
.container > .row:nth-child(3) ~ .row {
/* this rule targets the rows after the 3rd .row */
display: none;
}