Справочник по CSS — Псевдокласс :nth-child
Обновлено: 17.03.2023
Псевдокласс :nth-child
Псевдокласс :nth-child используется для добавления стиля к элементам на основе нумерации в дереве элементов.
Синтаксис
<i>Селектор</i>:nth-child(odd | even | <число> | <выражение>) {...}
Значения
odd | Все нечётные номера элементов. |
even | Все чётные номера элементов. |
<число> | Порядковый номер дочернего элемента относительно своего родителя. Нумерация начинается с 1, это будет первый элемент в списке. |
<выражение> | Задаётся в виде an±b, где a и b — целые числа, а n — счётчик, который автоматически принимает значение 0, 1, 2… |
Если a равно нулю, то оно не пишется и запись сокращается до b. Если b равно нулю, то оно также не указывается и выражение записывается в форме an. a и b могут быть отрицательными числами, в этом случае знак плюс меняется на минус, например: 5n-1.
За счёт использования отрицательных значений a и b некоторые результаты могут также получиться отрицательными или равными нулю. Однако на элементы оказывают влияние только положительные значения из-за того, что нумерация элементов начинается с 1.
В табл. 1 приведены некоторые возможные выражения и ключевые слова, а также указано, какие номера элементов будут задействованы.
Значение | Номера элементов | Описание |
---|---|---|
1 | Первый элемент, является синонимом псевдокласса :first-child. | |
5 | 5 | Пятый элемент. |
2n | 2, 4, 6, 8, 10,… | Все чётные элементы, аналог значения even. |
2n+1 | 1, 3, 5, 7, 9,… | Все нечётные элементы, аналог значения odd. |
3n | 3, 6, 9, 12, 15,… | Каждый третий элемент. |
3n+2 | 2, 5, 8, 11, 14,… | Каждый третий элемент, начиная со второго. |
n+4 | 4, 5, 6, 7, 8,… | Все элементы, кроме первых трёх. |
3, 2, 1 | Первые три элемента. | |
5n-2 | 3, 8, 13, 18, 23,… | — |
even | 2, 4, 6, 8, 10,… | Все чётные элементы. |
odd | 1, 3, 5, 7, 9,… | Все нечётные элементы. |
Допустимо комбинировать два псевдокласса :nth-child для выбора диапазона элементов. Здесь будут выбраны все элементы со второго по пятый.
:nth-child(n+2):nth-child(-n+5) { … }
Пример
В данном примере псевдокласс :nth-child используется для изменения стиля первой строки таблицы, а также для выделения цветом всех чётных строк (рис. 1).
Браузеры
:nth-childПосмотреть совместимость на Can I use?
:nth-childCSS-псевдоклассы nth-child и nth-of-type | 8HOST.
COM 25 февраля, 2022 11:50 дп 334 views | Комментариев нетDevelopment | Amber | Комментировать запись
В CSS есть несколько псевдоклассов, которые помогут вам быстро оформить ваше приложение. Наличие большого количества опций может быть как плюсом, так и минусом: не всегда сразу понятно, какой псевдокласс использовать и что он на самом деле делает. В данном мануале мы подробно рассмотрим CSS-псевдоклассы nth-child и nth-of-type, чтобы лучше понять, когда их использовать и в чем на самом деле разница.
CSS-псевдоклассы nth-child и nth-of-type интересно изучать именно в сравнении с другими типами псевдоклассов, поскольку они выбирают элементы на основе их положения в DOM. В то время как некоторые псевдоклассы выбирают конкретное состояние элемента (например, к таким относятся hover, active, target), nth-child и nth-of-type больше связаны со структурой разметки.
Требования
- Общие навыки работы с HTML5. Если вам нужно освежить свои знания или вы хотите получить всесторонний обзор языка разметки HTML5, изучите серию руководств «Как создать веб-сайт в HTML».
- Общие навыки работы с CSS.
Создание тестового HTML
Чтобы понять разницу между nth-child и nth-of-type, давайте сначала создадим наш тестовый HTML, чтобы на его примере увидеть разницу.
Допустим, у нас есть страница, а на этой странице есть раздел, который состоит из элементов заголовка (<h2>, <h4>) и абзаца (<p>).
<article> <h2>Here's a Header</h2> <p>I'm a paragraph with all kinds of information.</p> <p>Let's add another paragraph for fun.</p> <p>yadda yadda yadda</p> <p>blah blah blah</p> <p>yadda yadda yadda</p> <h4>Here's a Subheader</h4> <p>blah blah blah</p> <p>And maybe just one more.</p> </article>
Данный HTML выглядит так:
I’m a paragraph with all kinds of information.
Let’s add another paragraph for fun.
yadda yadda yadda
blah blah blah
yadda yadda yadda
Here’s a Subheader
blah blah blah
And maybe just one more.
По итогу у нас есть родительский элемент <article> и девять дочерних элементов: один тег <h2>, один <h4> и семь тегов <p>.
Синтаксис nth-child и nth-of-type
Есть несколько вариантов того, какие значения вы можете передать псевдоклассам nth-child и nth-of-type. Давайте посмотрим, как это делается.
Примечание: В примерах ниже используется nth-child, но его можно заменить на nth-of-type.
- :nth-child(2n+3): этот параметр требует некоторых вычислений. Цифры могут быть любыми на ваш выбор; а n будет меняться. Данный псевдокласс возьмет выбранные вами элементы, для начала установит в n значение 0 и начнет сложение из этой точки. Таким образом, он работает аналогично циклу for в JavaScript. Он будет перебирать выбранные вами элементы, обновляя значение n, например, вот так: 2(0)+3 = 3, 2(1)+3 = 5, 2(2)+3 = 7, и так далее. В результате псевдокласс выберет третий, пятый, седьмой элемент и т.д.
- :nth-child(odd/even): передавая псевдоклассу строки odd и even (нечетные или четные), вы можете выбрать доступные нечетные и четные элементы.
- :nth-child(3n): также можно передать число с переменной n, которая выберет интервал появления заданного элемента. Например, если передано 3, будут выбраны третий, шестой, девятый и элементы т. д.
- :nth-child(3): если вы просто передадите число (без n), псевдокласс выберет именно этот элемент из DOM. При передаче 3 будет выбран только третий элемент.
Использование CSS-псевдокласса nth-child
Псевдокласс nth-child имеет два важных компонента, которые следует учитывать:
- выбранные элементы, к которым будет применен псевдокласс.
- переданное псевдоклассу значение.
Приступим к созданию таблицы стилей CSS для приведенного выше примера HTML. Мы можем выбрать элементы абзаца и сделать цвет шрифта темно-бордовым вот так:
article p { color: maroon; }
Допустим, мы хотим, чтобы все остальные абзацы были желтого цвета. Мы можем использовать псевдокласс nth-child, чтобы применить новый цвет только к тем дочерним элементам, которые являются абзацами.
article p:nth-child(odd) { color: goldenrod; }
Теперь абзацы изменили свой цвет. Вы заметили, что произошло? Цвета чередуются: сначала идет бордовый цвет, а затем желтый. Давайте посмотрим, почему это произошло.
Определение элементов, выбранных с помощью nth-child
В приведенном выше примере абзацы, соответствующие стилю p:nth-child(odd), должны отвечать следующим требованиям:
- они должны быть нечетными дочерними элементами родительского элемента
- они должны быть элементами абзаца
Четность и нечетность элемента определяется независимо от типа. Это означает, что сначала проверка просматривает все дочерние элементы в родительском элементе в поисках необходимого (элементы абзаца), а затем выбирает все абзацы, которые считаются нечетными элементами.
Абзацы, к которым применен желтый цвет, являются нечетными дочерними элементами абзаца (<p>). Это объясняет, почему абзац после подзаголовка по умолчанию имеет темно-бордовый цвет — на самом деле это «четный» дочерний элемент (нечетный достался заголовку, но такие элементы не отвечают выборке псевдокласса).
Использование CSS-псевдокласса nth-of-type
Псевдокласс nth-of-type очень похож на nth-child. Основное отличие между ними состоит в том, что nth-of-type отдельно рассматривает тип выбираемого элемента перед проверкой любой другой логики.
Давайте воспользуемся нашим предыдущим примером, но вместо этого применим nth-of-type.
<article> <h2>Here's a Header</h2> <p>I'm a paragraph with all kinds of information. </p> <p>Let's add another paragraph for fun.</p> <p>yadda yadda yadda</p> <p>blah blah blah</p> <p>yadda yadda yadda</p> <h4>Here's a Subheader</h4> <p>blah blah blah</p> <p>And maybe just one more.</p> </article>
Стили:
article p { color: maroon; } article p:nth-of-type(odd) { color: goldenrod; }
Цветом по умолчанию по-прежнему остается темно-бордовый, но теперь мы выбираем только нечетные элементы абзаца.
Теперь стили применяются, если элемент соответствует следующим требованиям:
- Он представляет собой абзац, родительский элемент которого – article.
- Он является нечетным элементом.
Если мы посмотрим на это внимательнее, станет немного яснее, как этот псевдокласс выбирает нужные элементы.
Заголовки (<h2>, <h4>) вообще не учитываются псвдоклассом nth-of-type, потому что он выбирает конкретно по типу элемента. В данном случае его интересуют только элементы <p>.
В конечном итоге выбор между псевдоклассами nth-child и nth-of-type будет зависеть от того, какого стиля вы хотите достичь.
Как правило, если нужно выбрать какой-то интервал независимо от типа элемента, используется nth-child. Однако если нужно выбрать только определенный тип, используется nth-of-type.
Заключение
Селекторы nth-child и nth-of-type отлично поддерживаются браузерами. Проверьте nth-child и nth-of-type на CanIUse.com, чтобы узнать больше.
Читайте также: Что такое специфичность в CSS
Tags: CSS, HTMLВыделите HTML-таблицу альтернативными цветами строк с помощью селектора CSS
Введение
Иногда нам приходится выделять чередующиеся строки HTML-таблицы, чтобы привлечь внимание пользователя к важным данным. Есть много способов выделить чередующиеся строки, но самый простой способ — использовать селектор стилей CSS, который не требует никакого кода сценариев, такого как JavaScript или jQuery.
CSS предоставляет селектор nth-child(), который поддерживает ключевое слово нечетное и четное. Он также поддерживает арифметические операторы
Синтаксис
- :nth-child(number) {
- объявлений css;
- }
Использование селектора
Мы можем использовать селектор :nth-child вместе с HTML-тегами.
- // нечетное ключевое слово
- th:nth-child(нечетный) {
- фон: красный;
- }
- //четное ключевое слово
- p:nth-child(even) {
- фон: синий;
- }
- // арифметический оператор
- p:nth-child(4n+0) {
- фон: синий;
- }
Пример
Предположим, что у нас есть таблица сотрудников, и мы хотим выделить чередующиеся строки
Шаг 1. Создание стиля CSS
Определите следующую таблицу стилей в разделе заголовка HTML-страницы, используя селектор nth-child для таблицы.
- <стиль>
- таблица {
- семейство шрифтов: arial, без засечек;
- граница-коллапс: коллапс;
- ширина: 100 %;
- }
- тд, т {
- граница: 2 пикселя сплошная #DFFF00;
- выравнивание текста: по левому краю;
- отступ: 8 пикселей;
- }
- tr:nth-child(even) {
- цвет фона: #DFFF00;
- }
Шаг 2. Создайте HTML-таблицу
Employee
- <таблица>
-
Имя Город Адрес -
Витал Вадже Латур Индия -
Судхир Вадже Пуна Индия -
Вишал Нью-Йорк США -
Капил Лондон Великобритания - таблица>
Вывод приведенного выше кода будет выглядеть следующим образом:
Резюме
Я надеюсь, что этот блог был полезен для изучения того, как выделять альтернативные строки таблицы HTML с помощью CSS. Если у вас есть какие-либо предложения, пожалуйста, отправьте их, используя поле для комментариев.
- HTML
- CSS
- Таблица Html
- Селектор css
- JavaScript
- jQuery
Следующая рекомендуемая литература Как экспортировать HTML-таблицу в Excel с помощью плагина jQuery
Стиль первых, последних, нечетных и четных элементов в вашей CMS
Домашняя страница урока
Все уроки
Стили структуры позволяют нам создавать определенные стили для элементов в динамическом списке. Это дает нам возможность выделять элементы в списке для улучшения визуальной иерархии.
layout-design
В этом видео старый пользовательский интерфейс. Скоро будет обновленная версия!
В этом уроке:
- Селекторы структуры и стиль
- Динамические элементы
- Наследование стиля
Селекторы структуры
Чтобы применить стиль к определенным позициям динамического списка (например, к первому элементу), откройте раскрывающееся меню Состояний в Селекторе панели Стиль и выберите 900 15 шт. ( s) , который вы хотите стилизовать.
Первый и последний элемент
Вы можете добавить стиль к первому или последнему элементу в своем динамическом списке, выполнив следующие действия:
- Выберите динамический элемент (например, элемент коллекции)
- Выберите Первый элемент или Последний элемент в раскрывающемся меню Состояния свойств к первому или последнему элементу в вашем динамическом список.
Это замечательно, чтобы выделить эти конкретные элементы и придать вашему дизайну лучшую визуальную иерархию. Например, вы можете привлечь внимание к самой новой записи блога из своего списка блогов, добавив стили фона и текста к первому элементу.
Нечетные и четные элементы
Для стилизации нечетных или четных элементов в вашем динамическом списке:
- Выберите динамический элемент (например, элемент коллекции)
- Выберите Нечетные элементы или Четные элементы , в 900 15 штатов выпадающее меню
- Добавить свойства стиля на панель «Стиль»
Это добавит свойства стиля к элементам с нечетным или событийным номером в вашем динамическом списке.
Подобное оформление элементов списка визуально разбивает список, чтобы элементы можно было легче отличить друг от друга. Например, вы можете разбить свой список, добавив стили фона и текста к элементам с нечетными номерами (первый элемент, третий элемент, пятый элемент и т. д.), чтобы кому-то было легче видеть каждый элемент отдельно.
Динамические элементы
Вы можете стилизовать такие элементы, как Списки коллекций на статических страницах или список динамических элементов на странице шаблона .
Электронная торговля
Вы также можете стилизовать динамические элементы на страницах Электронная торговля .
Например, вы можете оформить список товаров, добавленных в чью-либо корзину, когда они посещают страницы Checkout и Подтверждение заказа .
Вы также можете добавить интерактивности своим элементам, изменив их внешний вид и поведение в разных состояниях.