Nth last child css: :nth-last-child() и :nth-last-of-type() | WebReference

Псевдокласс :nth-last-child | WebReference

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

Синтаксис

Селектор:nth-last-child(odd | even | <число> | <выражение>) {...}
Синтаксис
ОписаниеПример
<тип>Указывает тип значения.<размер>
A && BЗначения должны выводиться в указанном порядке.<размер> && <цвет>
A | BУказывает, что надо выбрать только одно значение из предложенных (A или B).normal | small-caps
A || BКаждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке.width || count
[ ]Группирует значения.
[ crop || cross ]
*Повторять ноль или больше раз.[,<время>]*
+Повторять один или больше раз.<число>+
?Указанный тип, слово или группа не является обязательным.inset?
{A, B}Повторять не менее A, но не более B раз.<радиус>{1,4}
#Повторять один или больше раз через запятую.<время>#

Значения

odd
Все нечётные номера элементов, начиная с конца.
even
Все чётные номера элементов, начиная с конца.
<число>
Порядковый номер дочернего элемента относительно своего родителя. Нумерация начинается с 1, это соответствует последнему элементу в списке.
<выражение>
Задаётся в виде an±b, где a и b целые числа, а n — счётчик, который автоматически принимает значение 0, 1, 2…

Если a равно нулю, то оно не пишется и запись сокращается до b. Если b равно нулю, то оно также не указывается и выражение записывается в форме an. a и b могут быть отрицательными числами, в этом случае знак плюс меняется на минус, например: 5n-1.

За счёт использования отрицательных значений a и b некоторые результаты могут также получиться отрицательными или равными нулю. Однако на элементы оказывают влияние только положительные значения из-за того, что нумерация элементов начинается с 1.

В табл. 1 приведены некоторые возможные выражения и ключевые слова, а также указано, какие номера элементов будут задействованы. Отсчёт ведётся от последнего элемента.

Табл. 1. Результат для различных значений псевдокласса
ЗначениеНомера элементовОписание
11Последний элемент, является синонимом псевдокласса :last-child.
55Пятый элемент с конца.
2n2, 4, 6, 8, 10,…Все чётные элементы, начиная с конца; аналог значения even.
2n+11, 3, 5, 7, 9,…Все нечётные элементы, начиная с конца; аналог значения odd.
3n3, 6, 9, 12,…Каждый третий элемент, начиная с конца.
3n+22, 5, 8, 11, 14,…Каждый третий элемент, начиная с предпоследнего.
n+44, 5, 6, 7, 8,…Все элементы, кроме последних трёх.
-n+33, 2, 1Последние три элемента.
5n-23, 8, 13, 18, 23,…
even2, 4, 6, 8, 10,…Все чётные элементы, начиная с конца.
odd1, 3, 5, 7, 9,…Все нечётные элементы, начиная с конца.

Пример

<!DOCTYPE html> <html> <head> <meta charset=»utf-8″> <title>nth-last-child</title> <style> table { width: 100%; /* Ширина таблицы */ border-collapse: collapse; /* Убираем двойные границы */ border-spacing: 0; /* Расстояние между ячейками */ } td { border: 1px solid #333; /* Параметры рамки */ padding: 3px; /* Поля в ячейках */ border-left: 3px double #333; /* Граница слева */ } td:nth-last-child(2n+1) { background: #f0f0f0; /* Цвет фона */ } td:nth-child(1) { border: 1px solid #333; /* Параметры рамки */ background: #cfc; /* Цвет фона */ } </style> </head> <body> <table> <tr> <td>&nbsp;</td><td>2134</td><td>2135</td> <td>2136</td><td>2137</td><td>2138</td> </tr> <tr> <td>Нефть</td><td>16</td><td>34</td> <td>62</td><td>74</td><td>57</td> </tr> <tr> <td>Золото</td><td>4</td><td>69</td> <td>72</td><td>56</td><td>47</td> </tr> <tr> <td>Дерево</td><td>7</td><td>73</td> <td>79</td><td>34</td><td>86</td> </tr> <tr> <td>Камни</td><td>23</td><td>34</td> <td>88</td><td>53</td><td>103</td> </tr> </table> </body> </html>

В данном примере псевдокласс :nth-last-child используется для выделения цветом всех нечётных колонок, начиная с последней (рис.  1).

Рис. 1. Применение псевдокласса :nth-last-child к колонкам таблицы

Спецификация

СпецификацияСтатус
Selectors Level 4Рабочий проект
Selectors Level 3Рекомендация
Спецификация

Каждая спецификация проходит несколько стадий одобрения.

  • Recommendation (Рекомендация) — спецификация одобрена W3C и рекомендована как стандарт.
  • Candidate Recommendation (Возможная рекомендация) — группа, отвечающая за стандарт, удовлетворена, как он соответствует своим целям, но требуется помощь сообщества разработчиков по реализации стандарта.
  • Proposed Recommendation (Предлагаемая рекомендация) — на этом этапе документ представлен на рассмотрение Консультативного совета W3C для окончательного утверждения.
  • Working Draft (Рабочий проект) — более зрелая версия черновика после обсуждения и внесения поправок для рассмотрения сообществом.
  • Editor’s draft (Редакторский черновик) — черновая версия стандарта после внесения правок редакторами проекта.
  • Draft (Черновик спецификации) — первая черновая версия стандарта.

Браузеры

91249.53.23.5
2.11103.2
Браузеры

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

Число указывает версию браузреа, начиная с которой элемент поддерживается.

Псевдоклассы

См. также

  • :nth-child()
  • :nth-last-child() и :nth-last-of-type()
  • Нумерованные списки
  • Псевдокласс :nth-child
  • Псевдокласс :nth-last-of-type

Рецепты

  • Как сделать нумерацию русскими буквами?

Практика

  • Зебра в таблице

Псевдокласс :nth-last-child() | CSS справочник

CSS селекторы

Значение и применение

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

Поддержка браузерами

Селектор
Chrome

Firefox

Opera

Safari

IExplorer

Edge
:nth-last-child()4.03.59.63.29.012.0

CSS cинтаксис:

:nth-last-child(номер)
{ блок объявлений; }

Версия CSS

CSS3

Пример использования

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

<!DOCTYPE html>
<html>
<head>
<title>Псевдоклассы и псевдоэлементы</title>
<style type = "text/css"> 
td:nth-last-child(4) {
background-color: orange;
}
td:nth-last-child(2) {
background-color: lime;
}
td:nth-last-child(2n+1) {
background-color: gray;
}
</style>
</head>
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</body>
</html>
Пример использования псевдокласса :nth-last-child() в CSS.

Давайте разберем еще очень важный пример, чтобы понять в чем отличие :nth-last-child от :nth-last-of-type().

Допустим, у нас есть статья, в которой два параграфа и мы хотим стилизовать первый абзац отлично от второго, установив задний фон цвета khaki (пойдя при этом очень хитрым путём…):

<article>
<p>Первый параграф </p>
<p>Второй параграф</p> 
</article>

Мы стоим перед выбором, что использовать p:nth-last-child(2) или p:nth-last-of-type(2) .

Попробуем оба варианта:
p:nth-child(2)  {
background-color: khaki;
}
p:nth-of-type(2) {
background-color: khaki;
}

Что не удивительно оба селектора работают для данной задачи и выделяют первый абзац.

Но в чём разница?

В данном примере псевдокласс

:nth-last-child() выбирает этот элемент если это параграф и это второй элемент одного родителя (считая от последнего дочернего элемента).

А :nth-last-of-type(), выбирает элемент если это второй параграф одного родителя (считая от последнего дочернего элемента).

На настоящий момент у нас всё работает, но мы вспомнили, что в статье необходимо указать ссылку на первоисточник.

Для этого после основного содержания статьи мы размещаем ссылку — элемент <a> на страницу.

<!DOCTYPE html>
<html>
<head>
<title>Псевдоклассы :nth-last-of-type() и :nth-last-child()</title>
<style type = "text/css"> 
p:nth-last-of-type(2) {
background-color:khaki;
}
p:nth-last-child(2)  {
background-color:khaki;
}
</style>
</head>
<body>
<article>
<p>Первый параграф</p>
<p>Второй параграф</p>
<a href = "http://ya.ru">Ссылка на ресурс источник</h3>
</article>
</body>
</html>
Пример использования псевдоклассов :nth-last-of-type() и :nth-last-child().

Что в итоге у нас изменится?

Селектор :nth-last-of-type() по-прежнему работает без изменений, а селектор :nth-last-child() стал портить нам всю малину, так как он действительно выделяет второй элемент одного родителя (считая от последнего дочернего элемента), а это у нас, как вы понимаете, с добавлением гиперссылки стал второй абзац.

Для данной задачи оптимальным выбором является использование :nth-last-of-type() по объективным причинам:

p:nth-last-of-type(2)  {
background-color: khaki;
}
CSS селекторы

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:nth-last-child(n+3) ~ li {
            цвет: #8EBF41;
          }
        
      
      <тело>
         

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

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

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

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

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

    Успех!

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

    :n-последний-дочерний() | Коддропс

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

    Вы можете передать положительное число в качестве аргумента :nth-last-child() , который выберет один элемент, индекс которого внутри его родителя соответствует аргументу :n-последний-ребенок() . Например, li:nth-last-child(3) выберет предпоследний элемент списка; то есть третий элемент снизу (начиная с последнего элемента).

    Вы также можете передать одно из двух предопределенных ключевых слов: четных и нечетных . li:nth-child(even) выберет все элементы списка с четными порядковыми номерами (2, 4, 6, 8 и т. д.), а li:nth-child(нечетный) выберет все элементы списка с нечетными номерами. порядковые номера (1, 3, 5, 7 и т. д.).

    :nth-last-child() также позволяет выбрать один или несколько элементов с помощью формулы (или уравнения) — a n+ b — которая передается в качестве аргумента. Синтаксис: :nth-last-child(an+b) , где вы заменяете a и b собственными целочисленными значениями, чтобы, после того, как n заменяется положительными числами (0, 1, 2, 3 и т. д.), полученное число является индексом элемента, который вы хотите выбрать. Например, :nth-last-child(3n+1) выберет 1-го (3*0 +1 = 1) дочернего элемента снизу, 4-го (3*1 +1 = 4) дочернего элемента снизу, 7-го (3* 2+1=7) ребенок снизу и т.д. и т.д.

    Что делает :nth-last-child(an+b) , так это то, что он делит дочерние элементы контейнера на и элементов (последняя группа берет остаток), и затем выбирает b -й элемент каждой группы. Итак, li:nth-last-child(3n+1) разделит элементы списка на 3 группы, оставшиеся элементы поместит в четвертую группу (если количество элементов не делится на 3), а затем будет соответствовать первому элементу в каждой группе.

    Например, на следующем изображении показан результат выбора li:nth-last-child(3n+1) в списке элементов. В списке 11 элементов, и у нас есть a = 3 , поэтому 11 элементов будут разделены на 3. 11/3 = 3 + 2, поэтому останется два элемента, которые будут сгруппированы в последнюю группу. своих собственных. Затем для каждой из четырех групп будет выбран первый элемент. На следующем изображении совпадающие элементы имеют фон цвета хаки.

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

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

    Общая информация и заметки

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

    • Тестер селекторов структурных псевдоклассов CSS3 от Lea Verou
    • NTH-TEST — тестер n-го дочернего элемента и n-го типа Пола Мэлони

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

    li:nth-last-child(2n+3)::after {
        /* стили здесь */
    }
    tr: n-последний ребенок (четный): hover {
        цвет фона: голубой;
    }
                     

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

    :nth-last-child() также похож на :nth-last-of-type() , за исключением того, что последний более конкретен — он выбирает элементы на основе заданной формулы , только если элемент имеет определенный тип . Вы можете узнать больше об этом в записи :nth-last-of-type() .

    Примеры

    В следующем примере выбираются четные строки в таблице и к ним применяется цвет фона для создания эффекта зебры.

    tr: n-последний ребенок (четный) {
        цвет фона: #eee;
    }
                     

    Следующие действительны :nth-last-child() объявления:

    li:n-последний-потомок(-n+1) {}
    
    p: n-последний-дочерний (нечетный) {}
    
    tr:nth-last-child(2n) {} /* 2n эквивалентно "четному" */
    
    article:nth-last-child(2n+1) {} /* 2n+1 эквивалентно "нечетному" */
    
    li:n-последний-потомок(4n+1) {}
                     

    Живая демонстрация

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

    Посмотреть эту демонстрацию на игровой площадке Codrops

    Поддержка браузера

    Селектор :nth-last-child() поддерживается в Chrome, Firefox, Safari, Opera 9.

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

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

  • Первая строка
    Второй ряд
    Третья строка
    Четвертый ряд
    Пятый ряд