Содержание

Псевдоклассы группы child — CSS — Дока

  1. Кратко
  2. Пример
  3. Как пишется
  4. Подсказки

Кратко

Скопировано

При помощи этих псевдоклассов можно удобно выбирать элементы по их порядковому номеру внутри родительского элемента.

Пример

Скопировано

Раскрасим в разные цвета фон у пунктов списка. Обратите внимание, что у всех пунктов списка одинаковые классы, а значит, мы не сможем обратиться к отдельным пунктам при помощи селектора по классу.

<ul>  <li>Изумрудно зелёный</li>  <li>Лаймовый</li>  <li>Лазурный</li>  <li>Лазурный</li>  <li>Лазурный</li>  <li>Розовый щербет</li>  <li>Умеренный оранжевый</li></ul>
          <ul>
  <li>Изумрудно зелёный</li>
  <li>Лаймовый</li>
  <li>Лазурный</li>
  <li>Лазурный</li>
  <li>Лазурный</li>
  <li>Розовый щербет</li>
  <li>Умеренный оранжевый</li>
</ul>

У всех пунктов списка будет синий фон:

. list-item {  background-color: #2E9AFF;}
          .list-item {
  background-color: #2E9AFF;
}

У первого пункта списка (первого дочернего элемента) будет тёмно-зелёный фон:

.list-item:first-child {  background-color: #286C2D;}
          .list-item:first-child {
  background-color: #286C2D;
}

У последнего пункта списка (последнего дочернего элемента) будет оранжевый фон:

.list-item:last-child {  background-color: #FF8630;}
          .list-item:last-child {
  background-color: #FF8630;
}

У второго пункта списка будет зелёный фон:

.list-item:nth-child(2) {  background-color: #41E847;}
          .list-item:nth-child(2) {
  background-color: #41E847;
}

У предпоследнего пункта списка будет розовый фон:

.list-item:nth-last-child(2) {  background-color: #F498AD;}
          
.list-item:nth-last-child(2) { background-color: #F498AD; }
Открыть демо в новой вкладке

Как пишется

Скопировано

Есть три суперпростых по своей логике работы псевдокласса из этого набора:

  • :only-child — выбирает любой элемент, который является единственным дочерним элементом своего родителя. Можно имитировать аналогичное поведение следующими комбинациями: :first-child:last-child или :nth-child(1):nth-last-child(1), но зачем так сложно, если можно проще?
  • :first-child — выбирает первый дочерний элемент в родителе.
  • :last-child — выбирает последний дочерний элемент в родителе.

Псевдоклассы, несущие в себе сочетание букв nth, работают гораздо интереснее. Для их правильной работы нужно указать в скобках паттерн, по которому будут выбираться дочерние элементы.

Звучит сложнее, чем работает. Начнём с простого, с ключевых слов:

  • :nth-child(odd) — выбирает нечётные элементы внутри родителя, подходящие под левую часть селектора.
  • :nth-child(even) — выбирает чётные элементы внутри родителя, подходящие под левую часть селектора.

В круглых скобках мы можем указать просто цифру. Таким образом будет выбран соответствующий этой цифре дочерний элемент. Например, :nth-child(3) выберет третий дочерний элемент, подходящий под левую часть селектора.

Но всё становится гораздо интереснее, когда мы хотим выбрать, к примеру, каждый третий элемент внутри родителя. Используем для этого формулу :nth-child(3n). Вместо n будет подставляться 0, затем 1, 2 и так далее. В результате умножения в скобки будет подставляться 0, 3, 6, 9, и так до тех пор, пока не закончатся дочерние элементы внутри родителя.

Пойдём дальше и попробуем выбрать каждый шестой элемент, начиная с десятого. Тут нам к умножению на n нужно будет прибавить ещё 10, чтобы отсчёт начался не с 0, а с 10: nth-child(6n+10).

Псевдокласс :nth-last-child работает абсолютно аналогично, только счёт ведётся с конца.

Подсказки

Скопировано

💡 Часто начинающие разработчики пытаются применить эти псевдоклассы к родительскому элементу. Но тут необходимо просто запомнить, что нужно применять псевдоклассы именно к дочерним элементам, из списка которых надо выбрать. При расчёте порядкового номера дочернего элемента учитываются все соседние дочерние элементы, находящиеся на одном уровне с элементом, к которому мы применяем псевдокласс :nth-child, вне зависимости от класса и типа элемента.

💡 Не надо стесняться пользоваться калькулятором NTH. Часто не получается сразу в уме составить правильную формулу.

Оценка материала

Если вы нашли ошибку, отправьте нам пулреквест!

Во время отправки формы что-то пошло не так. Попробуйте ещё раз?

Предыдущий материал

:target

ctrl + alt +

Следующий материал

Псевдоклассы группы type

ctrl + alt +

Выборка элементов в CSS через псевдоклассы — first-child, last-child и nth-child

Категория: Разработка сайтов

Третье поколение CSS принесло в вёрстку такое понятие, как псеводклассы. Сегодня речь пойдет о first-child, last-child и nth-child. С помощью них можно легко переоформить первый или последний элемент списка, изменить цвет второй строки таблицы или выделить первые пять ячеек таблицы. И всё это без использования javascript.

  • «first-child» — выбирает первый элемент родителя;
  • «last-child» — указывает на последний элемент родителя;
  • «nth-child» — выбирает элементы исходя по параметру с начала;
  • «nth-last-child» — то же самое, но начиная с конца.

С помощью «first-child» и «last-child» можно выбрать и переоформить первый или последний элемент родителя. Посмотрим как это выглядит на примере. Для этого применим стили к ячейкам таблицы с идентификатором «primer» (id=»primer»).


<style>
    #primer tr:first-child td { background-color:red; }
    #primer tr:last-child td { background-color:green; }
</style>
1.11.21.31.4
2.12.22.32.4
3.13.23.33.4
4.14.24.34.4
5.15.25.35.4

Псевдолкасс «nth-child» предоставляет более интересные возможности. Он позволяет применить стиль к элементам в зависимости от их порядкового номера в дереве DOM. Псевдокласс может принимать параметры:

  • «odd» — выбрать нечетные элементы;
  • «even» — выбрать четные элементы;
  • число — выбрать элемент с определенным порядковым номером;
  • выражение вида an+b.

Примеры использования nth-child()

Начинаем разбираться. Применим к таблице стиль для задания фона чётным и нечетным строкам:


<style>
    #primer tr:nth-child(odd) td { background-color:red; }
    #primer tr:nth-child(even) td { background-color:green; }
</style>
1.11.21.31.4
2.12.22.32.4
3.13.23.33.4
4.14.24.34.4
5.15.25.35.4

Если в качестве параметра к nth-child() указать число, то можно выделить элементы по их порядковому номеру внутри родительского:


<style>
    #primer td:nth-child(2) { background-color:red; }
    #primer td:nth-child(3) { background-color:green; }
</style>
1. 11.21.31.4
2.12.22.32.4
3.13.23.33.4
4.1
4.24.34.4
5.15.25.35.4

В качестве параметра можно задавать выражения вида «an+b», где «a» и «b» целые числа, а «n» — переменная, которая последовательно изменяется от 0 до количества элементов селектора. Рассмотрим пример выделения красным цветом только первых двух строк и каждого четвертого столбца.


<style>
    #primer tr:nth-child(-n+2) td { background-color:red; }
    #primer td:nth-child(4n+4) { background-color:red; }
</style>
1.11.21.31.41.51.61.71.8
2.12.22.32.42.52.62.72.8
3. 13.23.33.43.53.63.73.8
4.14.24.34.44.54.64.74.8
5.15.25.35.45.55.65.75.8

Выбора только первых трёх элементов списка:

li:nth-child(-n+3)

Выбора последних трёх элементов списка:

li:nth-child(n+3)

Выбора каждого третьего элемента списка:

li:nth-child(3n+1)

Псевдокласс nth-last-child()

Осталось разобрать псевдокласс «nth-last-child». Его отличие от «nth-child» в том, что весь отсчёт идёт от конца селектора. Примером может служить ситуация, когда требуется выделить ячейку таблицы «ИТОГО». Как правило, это последняя ячейка последней строки:


<style>
    #primer tr:nth-child(1) td:nth-child(1) {background-color:red;}
    #primer tr:nth-last-child(1) td:nth-last-child(1) {background-color:green;}
</style>
1. 11.21.31.4
2.12.22.32.4
3.13.23.33.4
4.14.24.34.4
5.15.25.35.4

Псевдоклассы CSS могут применяться к любым элементам html документа.

CSS: псевдокласс nth-last-child — Изучите CSS

❮ Пред. Следующий ❯

Псевдокласс :nth-last-child() выбирает элементы на основе их индекса, начиная с последнего элемента и выше.

:nth-last-child() может быть задан числом, ключевым словом или формулой.

нечетный

Выбирает элементы с нечетными порядковыми номерами (например, 1, 3, 5, 7 и т. д.).

четный

Выбирает элементы с четными порядковыми номерами (например, 2, 4, 6, 8 и т. д.).

Выбирает элементы, числовая позиция которых соответствует шаблону An+B (для каждого положительного целого числа или нулевого значения n). Индекс первого элемента равен 1, а n в формуле начинается с 0. Значения A и B должны быть целыми числами.

Селекторы уровня 4

Селекторы уровня 3

 :nth-last-child() {
  css объявления;
} 

Пример селектора :nth-last-child():

 

  <голова>
    Название документа
    <стиль>
      р: последний ребенок {
        цвет фона: #1c87c9;
        цвет: #fff;
      }
    
  
  <тело>
     

:пример селектора nth-last-child

Lorem ipsum — это просто фиктивный текст...

Lorem Ipsum — это просто фиктивный текст...

Попробуй сам »

Пример «нечетных» и «четных» ключевых слов:

 

  <голова>
    Название документа
    <стиль>
      p: n-последний ребенок (нечетный) {
        фон: #1c87c9;
        цвет: #еее;
      }
      p: n-последний ребенок (четный) {
        фон: #666;
        цвет: #еее;
      }
    
  
  <тело>
     

:пример селектора nth-last-child

Абзац 1

Абзац 2

Абзац 3

Попробуй сам »

Пример :nth-last-child() с тегом

:
 

  <голова>
    <стиль>
      стол {
        граница: 1px сплошная #8EBF41;
        интервал между границами: 10 пикселей;
        семейство шрифтов: без засечек;
      }
      таблица тр {
        цвет фона: #cccccc;
      }
      /* Выбирает последние три элемента */
      tr:n-последний-потомок(-n+3) {
        цвет фона: #8EBF41;
      }
      таблица тр тд {
        отступ: 10 пикселей;
      }
      /* Выбирает каждый элемент, начиная со второго до последнего */
      tr: n-последний ребенок (n + 2) {
        цвет: #ffffff;
      }
      /* Выбираем только последний второй элемент */
      tr: n-последний ребенок (2) {
        вес шрифта: 900;
      }
    
<тело>

:пример селектора nth-last-child

<таблица> <тело>

Попробуй сам »

Пример :nth-last-child() с тегом

  • :
     
    
      <голова>
        <стиль>
          /* Если есть хотя бы три элемента списка, стилизовать их все */
          li:n-последний-ребенок(n+3),
          li: n-последний-ребенок (n + 3) ~ li {
            цвет: #8EBF41;
          }
        
      
      <тело>
         

    :пример селектора nth-last-child

    <ол>
  • Первый элемент списка
  • Второй элемент списка
  • <ол>
  • Первый элемент списка
  • Второй элемент списка
  • Третий элемент списка
  • Четвертый элемент списка
  • Пятый пункт списка
  • Шесть пунктов списка
  • Попробуй сам »

    Практикуйте свои знания

    Псевдокласс :nth-last-child() выбирает элементы

    на основе их индекса, начиная с последнего элемента вверх. которые являются единственным потомком своего типа. на основании их индекса. того же типа на основе их индекса.

    Успех!

    Неверно! Ты не правильно понял!

    last-child() — CSS: Каскадные таблицы стилей

    Псевдокласс :nth-last-child() CSS сопоставляет элементы на основе их положения в группе братьев и сестер, считая с конца.

     /* Выбирает каждый четвертый элемент
       среди любой группы братьев и сестер,
       считая в обратном порядке от последнего */
    : n-последний-ребенок (4n) {
      цвет: салатовый;
    } 

    Примечание: Этот псевдокласс по сути такой же, как :nth-child , за исключением того, что он считает элементы в обратном порядке от конец , а не вперед с начала.

    Синтаксис

    Псевдокласс nth-last-child указывается с одним аргументом, который представляет шаблон для сопоставления элементов, считая с конца.

    Значения ключевых слов

    нечетный
    Представляет элементы, чье числовое положение в ряду братьев и сестер является нечетным: 1, 3, 5 и т. д., считая с конца.
    даже
    Представляет элементы, чье числовое положение в ряду братьев и сестер четное: 2, 4, 6 и т. д., считая с конца.

    Функциональное обозначение

    <Ан+В>
    Представляет элементы, числовая позиция которых в ряду одноуровневых элементов соответствует шаблону An+B для каждого положительного целого числа или нулевого значения n . Индекс первого элемента, считая с конца, равен 1 . Значения A и B должны быть равны с.

    Формальный синтаксис

     :nth-last-child(  [ из  ]? ) 

    где
    = | даже | нечетный
    <список-селекторов-комплексов> = <селектор-комплексов>#

    где
    <селектор-комплексов> = <селектор-комплексов> [ <комбинатор>? <селектор-состава> ]*

    где
    <селектор-состава> = [ <селектор-типа>? <селектор-подкласса>* [ <селектор-псевдо-элемента> <селектор-псевдо-класса>* ]* ]!
    <комбинатор> = '>' | '+' | '~' | [ '|' ]

    где
    <селектор типа> = | <нс-префикс>? '*'
    <селектор подкласса> = <селектор идентификатора> | <селектор класса> | <селектор атрибутов> | <селектор псевдокласса>
    <селектор псевдоэлемента> = ':' <селектор псевдокласса>
    <селектор псевдокласса> = ':' <идентификатор-токен> | ':' <токен-функции> <любое-значение> ')'

    где
    = ? <идентификатор> 9' | '$' | '*' ]? '='
    = i | с

    Примеры

    Примеры селекторов

    tr:n-последний-потомок(нечетный) или tr:n-последний-потомок(2n+1)
    Представляет нечетные строки таблицы HTML: 1, 3, 5 и т. д., считая с конца.
    tr:n-последний-потомок(четный) или tr:n-последний-потомок(2n)
    Представляет четные строки HTML-таблицы: 2, 4, 6 и т. д., считая с конца.
    :n-последний-дочерний(7)
    Представляет седьмой элемент, считая с конца.
    :n-последний-потомок(5n)
    Представляет элементы 5, 10, 15 и т. д., считая с конца.
    :n-последний-потомок(3n+4)
    Представляет элементы 4, 7, 10, 13 и т. д., считая с конца.
    :n-последний-потомок(-n+3)
    Представляет последние три элемента среди группы братьев и сестер.
    p:n-последний-потомок(n) или p:n-последний-потомок(n+1)
    Представляет каждый

    элемент среди группы братьев и сестер. Это то же самое, что и простой селектор p . (Поскольку n начинается с нуля, а последний элемент начинается с единицы, n и n+1 будут выбирать одни и те же элементы. )

    p:n-последний-потомок(1) или p:n-последний-потомок(0n+1)
    Представляет каждые

    это первый элемент среди группы братьев и сестер, считая с конца. Это то же самое, что и селектор :last-child .

    Пример таблицы

    HTML
     <таблица>
      <тело>
        
  • УСБ
     таблица {
      граница: 1px сплошной синий;
    }
    /* Выбирает последние три элемента */
    tr:n-последний-потомок(-n+3) {
      цвет фона: розовый;
    }
    /* Выбирает каждый элемент, начиная со второго до последнего */
    tr: n-последний ребенок (n + 2) {
      цвет синий;
    }
    /* Выбираем только последний второй элемент */
    tr: n-последний ребенок (2) {
      вес шрифта: 600;
    }
     
    Результат

    Запрос количества

    Запрос количества стилей элементов в зависимости от их количества. В этом примере элементы списка становятся красными, когда в данном списке их не менее трех. Это достигается за счет объединения возможностей nth-last-child псевдокласс и общий родственный комбинатор.

    HTML
      
    Список из четырех элементов (стилизованный):
    <ол>
  • Один
  • Два
  • Три
  • Четыре
  • Список из двух элементов (без оформления):
    <ол>
  • Один
  • Два
  • УСБ
     /* Если в списке есть хотя бы три элемента,
       стиль их всех */
    li:n-последний-ребенок(n+3),
    li: n-последний-ребенок (n + 3) ~ li {
      красный цвет;
    } 
    Результат

    Технические характеристики

    Первая строка
    Второй ряд
    Третья строка
    Четвертый ряд
    Пятый ряд
    Первая строка
    Вторая строка
    Третья строка
    Четвертая строка
    Пятая линия
    Спецификация Статус Комментарий
    Селекторы уровня 4
    Определение ‘:nth-last-child’ в этой спецификации.
    Рабочий проект Совпадающие элементы не обязательно должны иметь родителя.
    Селекторы уровня 3
    Определение ‘:nth-last-child’ в этой спецификации.
    Рекомендация Исходное определение.

    Совместимость с браузером

    Таблица совместимости на этой странице создана на основе структурированных данных. Если вы хотите внести свой вклад в данные, посетите https://github.com/mdn/browser-compat-data и отправьте нам запрос на включение.

    Рабочий стол Мобильный
    Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Интернет
    :nth-last-child () Хром Полная поддержка 4 Край Полная поддержка 12 Firefox Полная поддержка 3,5 ИЭ Полная поддержка 9 Опера Полная поддержка 9 Сафари Полная поддержка 3. 2 Веб-просмотр Android Полная поддержка ≤37 Chrome Android Полная поддержка 18 Firefox Android Полная поддержка 4 Opera Android Полная поддержка 10.1 Сафари iOS Полная поддержка 3.2 Самсунг Интернет Android Полная поддержка 1,0
    Соответствует элементам без родительского элемента Хром Полная поддержка 57 Край Полная поддержка 79 Firefox Полная поддержка 52 ИЭ Без поддержки Опера Полная поддержка 44 Сафари Без поддержки WebView Android Полная поддержка 57 Хром Android Полная поддержка 57 Firefox Android Полная поддержка 52 Opera Android Полная поддержка 43 Сафари iOS Без поддержки Samsung Интернет Android Полная поддержка 7. 0
    из <селектора> синтаксис Chrome Без поддержки

    Примечания

    Без поддержки

    Примечания

    Примечания См. ошибку 304163.
    Край Без поддержки

    Примечания

    Без поддержки

    Примечания

    Примечания См. ошибку 304163.
    Firefox Без поддержки

    Примечания

    Без поддержки

    Примечания

    Примечания См.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *