Можно ли выбрать, скажем, каждый четвертый элемент в наборе элементов?
Пример: у меня есть 16 <div>
элементов ... Я мог бы написать что-то вроде.
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
Есть лучший способ сделать это?
css
css-selectors
Дерек Адэйр
источник
источник
Ответы:
Как следует из названия, позволяет создавать арифметическое выражение, используя переменную в дополнение к постоянным числам. Вы можете выполнить сложение ( ), вычитание ( ) и умножение коэффициента ( где целое число, включая положительные числа, отрицательные числа и ноль).
:nth-child()
n
+
-
an
a
Вот как бы вы переписали приведенный выше список селекторов:
Для объяснения того, как работают эти арифметические выражения, смотрите мой ответ на этот вопрос , а также спецификации .
Обратите внимание, что в этом ответе предполагается, что все дочерние элементы в одном и том же родительском элементе имеют одинаковый тип элемента
div
. Если у вас есть какие-либо другие элементы разных типов, такие какh1
илиp
, вам нужно будет использовать:nth-of-type()
вместо того,:nth-child()
чтобы обеспечить подсчет толькоdiv
элементов:Для всего остального (классов, атрибутов или любой их комбинации), где вы ищете n-й дочерний элемент, который соответствует произвольному селектору, вы не сможете сделать это с помощью чистого CSS-селектора. Смотрите мой ответ на этот вопрос .
Кстати, между 4n и 4n + 4 нет особой разницы в отношении
:nth-child()
. Если вы используетеn
переменную, она начинает отсчитывать с 0. Это то, что будет соответствовать каждый селектор::nth-child(4n)
:nth-child(4n+4)
Как видите, оба селектора будут соответствовать тем же элементам, что и выше. В этом случае разницы нет.
источник
tr td:nth-child(4)
. Обратите внимание на отсутствие n в скобкахСмотрите: http://css-tricks.com/how-nth-child-works/
источник
Попробуй это
источник
Вам нужен правильный аргумент для
nth-child
псевдокласса.Аргумент должен быть в форме ,
an + b
чтобы соответствовать каждому а й ребенка , начиная с б.Оба
a
иb
являются необязательными целыми числами, и оба могут быть нулевыми или отрицательными.a
равен нулю , то нет «каждого а й ребенок» положение.a
отрицательно, то сопоставление выполняется в обратном порядке, начиная сb
.b
ноль или отрицательный, то можно написать эквивалентное выражение, используя положительный,b
например,4n+0
такой же, как4n+4
. Точно так4n-1
же, как4n+3
.Примеры:
Выберите каждого 4-го ребенка (4, 8, 12, ...)
Выберите каждого четвертого ребенка, начиная с 1 (1, 5, 9, ...)
Показать фрагмент кода
Выберите каждого 3-го и 4-го ребенка из групп 4 (3 и 4, 7 и 8, 11 и 12, ...)
Показать фрагмент кода
Выберите первые 4 пункта (4, 3, 2, 1)
Показать фрагмент кода
источник