Ответ 1
:nth-child()
не работает в классах, он ищет сам элемент. Вам нужно будет обернуть div .container
оболочкой и использовать следующее:
.wrapper div:nth-child(n+3) {
/* put your styles here... */
}
<div class="wrapper">
<div class="container"></div>
<div class="container"></div>
<div class="container"></div>
<div class="container"></div>
</div>
Рабочий демонстрационный пример.
Разъяснение на :nth-child()
Использование .container:nth-child(n+3)
может работать или не работать. Поскольку :nth-child()
pseudo-class представляет дочерний элемент nth
, соответствующий селектору (.container
в этом случае).
Если элемент .container
не является nth-child своего родителя, он не будет выбран.
Из Spec:
Обозначение псевдокласса
:nth-child(an+b)
представляет собой элемент который имеетan+b-1
братья и сестры перед ним в дереве документов, для любого положительное целое или нулевое значениеn
и имеет родительский элемент.
Рассмотрим следующий пример:
<div class="parent">
<div>1st</div>
<div>2nd</div>
<div>3rd</div>
<div class="container">4th</div>
<div class="container">5th</div>
<div class="container">6th</div>
<div>7th</div>
<div class="container">8th</div>
<div>9th</div>
</div>
В этом случае .container:nth-child(2)
не будет выбирать второй элемент div.container
(который имеет 5th
контент). Поскольку этот элемент не является дочерним элементом 2nd родительского родительского дерева.
Кроме того, .container:nth-child(n+3)
выберет все элементы div.container
, потому что n
начинается с 0
для первого элемента в родительском древовидном дереве, а первый div.container
является 4-й дочерний своего родителя.
n starts from 0
n = 0: (0 + 3) = 3 => 3rd element
n = 1: (1 + 3) = 4 => 4th element
n = 2: (2 + 3) = 5 => 5th element
...
Следовательно, div.container:nth-child(n+3)
представляет все дочерние элементы 3rd, 4th, 5th,..., соответствующие селектору div.container
.