Свойство псевдокласса :nth-child
Основное свойство псевдокласса :nth-child
в последовательности выбора порядковых номеров элементов в HTML коде исходя из устанавливаемых значений, применяемых ко всем свойствам псевдоклассов :nth-last-child
, :nth-of-type
и :nth-last-of-type
.
Общие правила используемых значений :nth-child
Значение even
Значение even определяет последовательный выбор всех чётных элементов с лева на право.
- 12345
<style> .pagination.even li span:nth-child(even) { background:#ccc; color:red } </style> <ul class="pagination even"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> </li> </ul>
Значение odd
Значение odd определяет последовательный выбор всех нечётных элементов с начала в конец.
- 12345
<style> .pagination.odd li span:nth-child(odd) { background:#ccc; color:red } </style> <ul class="pagination odd"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> </li> </ul>
Значение числа
Значение число должно быть явно указано на выбираемые элементы, незавизимо от их чётности с лева на право.
- 12345
<style> .pagination.mynum li span:nth-child(1) { background:#111; color:#fff } .pagination.mynum li span:nth-child(2) { background:#333; color:#fff } .pagination.mynum li span:nth-child(3) { background:#555; color:#fff } .pagination.mynum li span:nth-child(4) { background:#777; color:#fff } .pagination.mynum li span:nth-child(5) { background:#999; color:#fff } </style> <ul class="pagination mynum"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> </li> </ul>
Значение счётчика
Значения счётчиков могут использовать различную последовательность в определении выбираемых элементов.
- n
- Счётчик числовых значений начиная с 0, является числовым выражением с последующим увеличением по числовому порядку 1, 2, 3, 4, 5...
- числоn
- При подобном использовании счётчика происходит последовательное умножение указанного числа на 0, 1, 2, 3, 4, 5....., за счёт этого происходит определение последовательности выбираемых элементов. Например если указать значение
:nth-child(2n)
элементы будут выбираться в следующей последовательности:
2 * 0 = 2, 2 * 1 = 2, 2 * 2 = 4, 2 * 3 = 6, 2 * 4 = 8, 2 * 5 = 10 и так далее, до бесконечности. - n + число
- Тут n будет последовательным увеличением числа + указанное число,
:nth-child(n+1)
= 0 + 1 = 1, 1 + 1 = 2, 2 + 1 = 3, 3 + 1 = 4, 4 + 1 = 5... - числоn + число
- Если к последовательному умножению будет прибавлено число последовательности придётся отступить от начала элементов с началом указанного числа, далее порядок вычисления будет происходить по принципу "числоn". Например
:nth-child(2n+число)
выделит элементы в следующем порядке: 2n+1
= отсутствие отступа, так как начинается с числа 1, но при этом дальнейший парядок попросту переходит в нечётную последовательность, выделяя числа 1, 3, 5, 7...2n+2
= отступ равен 2 и с него начинается дальнейший подсчёт, при таком выражении разницы между комбинацией значений2n
и2n+2
не будет.2n+3
= отступ равен 3 и с него начинается подсчёт, последовательность начнётся с 3 и продолжится в нечётном порядке 3, 5, 7, 9...2n+4
= отступ равен 4 и с него начинается подсчёт, последовательность начнётся с 4 и продолжится в чётном порядке 4, 6, 8, 10...- числоn - число
- При таком использовании значений от последовательно умножаемого числа будет отнято указанное число, если для примера взять
:nth-child(4n-число)
расчёт будет произведён следующим образом: 4n-1
= 4 * 0 - 1 = 3, 4 * 1 - 1 = 3, 4 * 2 - 1 = 7, 4 * 3 - 1 = 11, 4 * 4 - 1 = 15...4n-2
= 4 * 1 - 2 = 2, 4 * 2 - 2 = 6, 4 * 3 - 2 = 10, 4 * 4 - 2 = 14...- -n + число
- Используйте выражение производящее вычитание от указанного числа, последовательность определения происходит в следующем парядке, например:
:nth-child(-n+5)
будет выглядеть: 0 + 5 = 5, -1 + 5 = 4, -2 +5 = 3, -3 + 5 = 2, -4 + 5 = 1, проще будет понятно что будут затронуты все элементы до указанного числа, изменяется направление с конца на начало.
Пример использования счётчика
числоn
- 12345 678910
n + число
- 12345
числоn + число
- 12345
числоn - число
- 12345 678910
-n + число
- 12345 678910
<p>число<span style="color:red">n</span></p> <style> .pagination.numN li span:nth-child(2n) { background:#000; color:#fff } </style> <ul class="pagination numN"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> <span>6</span><span>7</span><span>8</span><span>9</span><span>10</span> </li> </ul> <p><span style="color:red">n</span> + число</p> <style> .pagination.Nnum li span:nth-child(n+1) { background:blue; color:#fff } </style> <ul class="pagination Nnum"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> </li> </ul> <p>число<span style="color:red">n</span> + число</p> <style> .pagination.numNnum li span:nth-child(2n+3) { background:red; color:#fff } </style> <ul class="pagination numNnum"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> </li> </ul> <p>число<span style="color:red">n</span> - число</p> <style> .pagination.numN-num li span:nth-child(4n-2) { background:#00BFFF; color:#000 } </style> <ul class="pagination numN-num"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> <span>6</span><span>7</span><span>8</span><span>9</span><span>10</span> </li> </ul> <p>-<span style="color:red">n</span> + число</p> <style> .pagination.N-num li span:nth-child(-n+5) { background:#FF00FF; color:#000 } </style> <ul class="pagination N-num"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> <span>6</span><span>7</span><span>8</span><span>9</span><span>10</span>
Использование нескольких свойств :nth-child
Допускается одновременное использование нескольких свойств :nth-child
с разными значениями, разумеется это доступно только двум типам людей, тем кто понимает что делает и тем кто использует обычный подбор.
В качестве примера используется применение 2 свойств к 10 элементам, из которых крайние 2 с начала и конца остаются не задействованными.
- 12345 678910
<style> .pagination.nth-nth li span:nth-child(n+3):nth-child(-n+8) { background:#FFFF00; color:#000 } </style> <ul class="pagination nth-nth"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> <span>6</span><span>7</span><span>8</span><span>9</span><span>10</span> </li> </ul>
Свойство псевдокласса :nth-last-child
Общие правила используемых значений :nth-last-child
Для применения свойства псевдокласса :nth-last-child
используются выражения аналогичные :nth-child
, при этом определение элементов происходит с права на лево, с конца на начало.
Пример применения свойства псевдокласса :nth-last-child
- 12345 678910
<style> .pagination.last-child li span:nth-child(-n+5) { background:#90EE90; color:#000 } .pagination.last-child li span:nth-child(n+6) { background:#00008B; color:#fff } </style> <ul class="pagination last-child"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> <span>6</span><span>7</span><span>8</span><span>9</span><span>10</span> </li> </ul>
Свойство псевдокласса :nth-of-type
Общие правила используемых значений :nth-of-type
Свойства псевдокласса :nth-of-type
аналогичны :nth-child
, свойство используется для определения элементов по их типу. Целью наличия подобного свойства псевдокласса является расширение возможностей влияния на определённые типовые элементы HTML.
Пример применения свойства псевдокласса :nth-of-type
- 12345 678910
<style> .pagination.nth-of-type li span:nth-of-type(-n+5) { background:#2F4F4F; animation:nth-of-type 4s infinite ease; color:#000 } .pagination.nth-of-type li span:nth-of-type(n+6) { background:#00BFFF; animation:nth-of-type 3s infinite ease; color:#fff } @keyframes nth-of-type { 0%, 100% { transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { transform: translate3d(10px, 0, 0); } } </style> <ul class="pagination nth-of-type"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> <span>6</span><span>7</span><span>8</span><span>9</span><span>10</span> </li> </ul>
Свойство псевдокласса :nth-last-of-type
Общие правила используемых значений :nth-last-of-type
У свойства псевдокласса :nth-last-of-type
те же выражения и значения что и у :nth-child
, свойство тоже определяет тип элемента как :nth-of-type
но последовательность изменена с конца на начало.
Пример применения свойства псевдокласса :nth-last-of-type
- 12345 678910
<style> .pagination.nth-last-of-type li span:nth-last-of-type(-n+5) { background:#2F4F4F; animation:nth-last-of-type 4s infinite ease; color:#000 } .pagination.nth-last-of-type li span:nth-last-of-type(n+6) { background:#00BFFF; animation:nth-last-of-type 3s infinite ease; color:#fff } @keyframes nth-last-of-type { 0%, 100% { transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { transform: translate3d(10px, 0, 0); } } </style> <ul class="pagination nth-last-of-type"> <li> <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span> <span>6</span><span>7</span><span>8</span><span>9</span><span>10</span> </li> </ul>
В используемых примерах применяются элементы с базовыми селекторами плагина bootstrap на котором работает сайт, поэтому они не описаны в предлагаемых демонстрационных кодах, надеюсь Вы понимаете о чём идёт речь.
Редактор для проверки знаний
Используя данный материал Вы можете сами попробовать поупражняться с применением свойства :nth-child
, редактор поддерживает любые свойства CSS и HTML теги, дополнительно оснащён библиотекой jQuery и плагином Bootstrap.
► Нажмите на значёк в редакторе для показа результата.
Генератор :nth-child
Генератор :nth-child предназначен для облегчения подбора значений свойствам псевдоклассов :nth-child
, :nth-last-child
, :nth-of-type
и :nth-last-of-type
. Вводите свои значения для нужных свойств, а генератор мнгновенно будет отображать результат.