Всем лёгкого рабочего понедельника!
В продолжение своих статей о селекторax CSS, псевдоклассах и псевдоэлементах, я хотел бы остановиться на одном из наиболее используемых в повседневной верстке псевдоклассе поподробнее.
Речь пойдет о псевдоклассе :nth-child() и о том, какие интересные штуки можно с ним проделать, зная его особенности и синтаксис.
Для начала, допустим, что у нас есть самый простой список <ul></ul>, состоящий из десяти элементов внутри, и нам нужно определить стили, к примеру, только для пятого элемента внутри этого списка. Для этого мы используем самую простую запись свойства li:nth-child(5)
:
Как Вы видите на примере выше: из 10 элементов списка только нужный нам 5-й элемент разукрасился в синий цвет.
Также, не составит труда разукрасить, к примеру, каждый третий элемент в синий цвет при помощи селектора li:nth-child(3n)
, где вместо n
будут подставляться значения от 0 и до бесконечности (равнозначно li:nth-child(3), li:nth-child(6), li:nth-child(9)
и до бесконечности):
Немного усложняем: для того, чтобы у нас разукрасились только четные элементы списка, мы можем использовать селектор li:nth-child(2n)
, либо альтернативу ему li:nth-child(even)
:
Еще чуток усложняем: для выделения только нечетных элементов списка, мы можем использовать селектор li:nth-child(2n-1)
, либо альтернативу ему li:nth-child(odd)
:
Добавив минус перед n
, мы сможем выделить определенное количество элементов в начале нашего списка. Например, выделить первые 6 элементов можно при помощи li:nth-child(-n+6)
:
Комбинирование нескольких nth-child:
Ну, и самое интересное. Скомбинировав несколько nth-child, идущих друг за другом, мы можем добиться очень интересных результатов.
Например, выделить промежуток внутри списка. К примеру, элементы с 3 по 6 при помощи комбинации li:nth-child(n+3):nth-child(-n+6)
:
В этом примере у нас сначала срабатывает свойство nth-child(n+3)
которое выбирает все элементы старше 3-го, а затем выбираются все элементы младше 6-го при помощи :nth-child(-n+6)
те элементы, которые удовлетворяют обоим условиям (в нашем случае, с 3 по 6) и стилизуются.
Ну и совсем наркоманский вариант тоже имеет право существовать:
Только нечетные элементы в промежутке от 3 до 7
Вы можете комбинировать эти псевдоклассы как Вам угодно и достичь любой комбинации.