Як працює CSS-селектор nth-child? Використання псевдокласу CSS:nth-child Css nth child кожен 3 й

Існує такий селектор, точніше псевдоклас, званий nth-child. Ось приклад його використання:

UL LI:nth-child(3n+3) ( color:#CCC; )

Що робить CSS-код, наведений вище? Він вибирає кожен третій елемент усередині маркованого списку: це 3-й, 6-й, 9-й, 12-й тощо. Давайте подивимося, як саме працює цей вираз і що ще можна зробити за допомогою: nth-child.

Все залежить від того, що знаходиться між дужками. Селектор: nth-child приймає два ключові слова: even і odd. Тут все просто: even вибирає парні елементи, такі як 2-ий, 4-ий, 6-ий і т.д., а odd вибирає непарні елементи, такі як 1-й, 3-й, 5-й і т.д. д.

Як видно з першого прикладу, :nth-child також приймає як параметр виразу. Навіть найпростіші рівняння, інакше кажучи, просто числа. Якщо поставити їх у дужки, буде вибрано лише один елемент із відповідним номером. Наприклад, як вибрати тільки п'ятий елемент:

UL LI:nth-child(5) ( color:#CCC; )

Однак повернімося до 3n+3 з першого прикладу. Як він працює і чому обирається кожен третій елемент? Весь фокус у розумінні змінної n та наведеного рівня алгебри. Подумайте про n , як про безліч цілих чисел, що починається з нуля. Потім доповніть рівняння. Так 3n це 3×n, а все рівняння разом це (3×n)+3. Тепер, підставляючи замість n числа більше чи рівні нулю, ми отримаємо:

  • (3×0) + 3 = 3 = 3-й елемент
  • (3 × 1) + 3 = 6 = 6-й елемент
  • (3×2) + 3 = 9 = 9-й елемент тощо.

А як щодо: nth-child (2n + 1)?

  • (2 × 0) + 1 = 1 = 1-й елемент
  • (2 × 1) + 1 = 3 = 3-й елемент
  • (2×2) + 1 = 5 = 5-й елемент тощо.

Так стоп! Адже це те саме, що і odd . Тоді, можливо, не варто використати цей вислів? Але хіба в цьому випадку ми не наражаємо наш перший приклад на зайве ускладнення? Що, якщо замість 3n+3 ми запишемо 3n+0 чи ще простіше 3n?

  • (3 × 0) = 0 = нічого немає
  • (3 × 1) = 3 = 3-й елемент
  • (3 × 2) = 6 = 6-й елемент
  • (3×3) = 9 = 9-й елемент тощо.

Отже, як ви можете бачити, результат вийде такий самий, а значить, немає необхідності в +3. Ми можемо використовувати і негативні значення n, з таким самим успіхом, як і віднімання в рівняннях. Наприклад, 4n-1:

  • (4 × 0) – 1 = –1 = нічого немає
  • (4 × 1) - 1 = 3 = 3-й елемент
  • (4 × 2) - 1 = 7 = 7-й елемент і т.д.

Використання -n може здатися дивним - якщо кінцевий результат негативний, то ніякі елементи у вибірку не потраплять. Але якщо доповнити рівняння і знову зробити результат позитивним, то вибірка виявиться досить цікавою: за допомогою неї можна буде отримати перші n елементів, наприклад: -n+3:

  • -0 + 3 = 3 = 3-й елемент
  • -1 + 3 = 2 = 2-й елемент
  • -2 + 3 = 1 = 1-й елемент
  • -3 + 3 = 0 = нічого немає і т.д.

На SitePoint є хороший довідник з милою табличкою, яку я безсоромно опублікую тут:

n 2n+1 4n+1 4n+4 4n 5n-2 -n+3
0 1 1 4 3
1 3 5 8 4 3 2
2 5 9 12 8 8 1
3 7 13 16 12 13
4 9 17 20 16 18
5 11 21 24 20 23

Підтримка браузерами

Селектор:nth-child - один із небагатьох CSS-селекторів, який майже повністю підтримується в сучасних браузерах і абсолютно не підтримується в IE, навіть IE8. Тому коли справа доходить до його використання, і кінцевий результат зроблений за технологією прогресивного поліпшення - ви можете сміливо використовувати його для деяких оформлювальних елементів, як забарвлення рядків таблиці. Однак не варто застосовувати його у більш серйозних випадках. Наприклад, покладатись на нього в розкладці сайту або видаляти праве поле з кожного третього блоку в сітці три на три, щоб вони увійшли до ряду.

CSS nth-child — це псевдоклас, який використовується для вибору елементів за допомогою числового виразу. Його синтаксис на перший погляд може здатися трохи заплутаним.

У цій статті ми розглянемо:

  • різні способи використання: nth-child;
  • більш гнучкий селектор: nth-of-type;
  • і пов'язані з ними селектори: nth-last-child і: nth-last-of-type.

:nth-last-of-type

:nth-last-of-type вибирає дочірні елементи, якщо їхня позиція в документі збігається з шаблоном, що описується алгебраїчним виразом.

Селектор :nth-last-of-type виглядає приблизно так:

li: nth-child (вираз); ()

«Вираз» може бути представлене ключовими словами even або odd , цілим числом або формулою на кшталт an+b , де a і b — цілі числа, позитивні чи негативні.

Оскільки псевдоклас CSS nth child можна використовувати для вибору діапазону різних елементів. Давайте розглянемо кілька прикладів, щоб стало зрозуміліше.

У мене є маркований список із 12 елементів. Подивимося, як можна використовувати :nth-child для вибору певного елемента або набору елементів за шаблоном:

  • lorem ipsum
  • lorem ipsum
  • lorem ipsum
  • lorem ipsum
  • lorem ipsum
  • lorem ipsum
  • lorem ipsum
  • lorem ipsum
  • lorem ipsum
  • lorem ipsum
  • lorem ipsum
  • lorem ipsum

Щоб вибрати третій елемент списку, необхідно вказати li:nth-child(3) . Для вибору всіх парних елементів можна використовувати ключове слово even. І навпаки можна використовувати :nth-child(odd) , щоб вибрати всі елементи з непарним номером.

CSS nth child кожен 3-й - вказуємо li: nth-child (3n). Щоб вибрати чотири перші елементи, використовуємо li:nth-child(-n+4) . Щоб вибрати все, окрім перших чотирьох елементів, можна використати li:nth-child(n+5).

Вираз an + b

Альтернативою використанню ключового слова odd є використання виразу 2n+1. Але як це працює?

Коли вираз у форматі an+b містить відмінні від нуля значення a та b, дочірні елементи розбиваються на групи. Якщо це вираз 2n+1, дочірні елементи розбиваються на групи по два. Кожному елементу групи присвоюється індекс, починаючи з 1 . Відповідний елемент у кожній групі – це індекс номер b . У прикладі це буде перший елемент.

Якщо вираз 3n+2 елементи групуються по три елементи, і другий елемент у кожній групі відповідає виразу.

Якщо значення b є негативним, то відповідним у групі є елемент з індексом b . Але він відраховується у зворотному напрямку від індексу 1 . І тут відповідний елемент належати не даної, а попередньої групі.

Ключове слово even CSS nth child може бути виражене як 2n . У цьому випадку ми не маємо значення b , тому вибирається кожен елемент групи з індексом a ; 2n вибирає кожен другий елемент, 3n - кожен третій, 4n - кожен четвертий тощо.

Особисто я вважаю, що концепція розбивки дочірніх елементів на групи та пошуку індексу відповідності для кожної групи є дуже заплутаною. Хоча саме так їх описує специфікація CSS-селекторів.

Мені більше подобається концепція пошуку кожного n-ного елемента - кожного 2-го, 3-го чи 4-го тощо. А потім мені простіше уявити, що друга частина виразу це зміщення.

У випадку 2n+1 я читаю цей вираз так: « Знайти кожен другий елемент та перемістити виділення вниз на 1».

Якщо вираз 3n-5, воно читатиметься так: « Знайти кожен третій елемент і перемістити виділення на 5».

Інші селектори:nth-child

:nth-child має відповідний псевдоклас :nth-last-child , який працює навпаки.

li:nth-last-child(3n) починає з останнього дочірнього елемента та обробляє їх у зворотному напрямку, зіставляючи кожен третій елемент із кінця списку.

Цей псевдоклас менш поширений. Проте часто необхідно вибрати перший або останній дочірній елемент. Це можна зробити за допомогою :nth-child(1) або :nth-last-child(1) , але цей метод зустрічається не так часто, як псевдокласи :first-child і :last-child . При цьому тільки: first-child працює в IE8, а: last-child і: nth-селектори - ні.

:nth-of-type

Що мене часто не задовольняє, то це те, що псевдоклас CSS nth child відбирає дочірні елементи за індексом і не враховує тип елемента.

Розглянемо наступний приклад.

lorem ipsum;

Aenean commodo ligula eget dolor. Vestibulum dapibus nunc ac augue;

Nunc sed turpis. Donec posuere vulputate arcu;

Є розділ із заголовком, підзаголовком та кількома абзацами. Я хочу, щоб перший абзац трохи виділявся за допомогою збільшеного розміру шрифту 1.5em.

Можна спробувати застосувати код section p:first-child , тому що потрібно встановити додатковий стиль для першого абзацу в цьому розділі. Але це не спрацює, оскільки перший дочірній елемент розділу h1. У цьому випадку необхідно використовувати селектор :first-of-type.

Існує цілий ряд селекторів цього типу: first-of-type,: last-of-type,: nth-of-type і: nth-last-of-type. Вони поводяться так само, як: nth-child, але відбирають n-і екземпляри елементів певного типу.

Псевдокласи можна використовувати для вибору певного елемента зі списку. У цьому уроці ми розповімо про псевдоклас:nth-child, що можна створити за допомогою цього псевдокласу і чим він може бути корисний. Псевдоклас:nth-child дозволяє вибрати групу елементів із загальними властивостями. Найчастіше він використовується для вибору парних чи непарних елементів із групи. Нерідко його використовують, щоб таблиця виглядала як зебра, задаючи різні кольори фону парним і непарним рядам.

Ще псевдоклас:nth-child дозволяє розділити елементи із загальною властивістю на групи і потім вибрати певний елемент з кожної групи, використовуючи наступний синтаксис:

Тут aвизначає кількість елементів у групі, а bвизначає, який елемент із групи буде обраний.
чи використовувати значення 2n+1, то елементи будуть розділені на групи по два, і будуть обрані перші елементи кожної групи, тобто елементи з непарним порядковим номером. Якщо використовувати значення 2n+2, то елементи знову будуть розділені на групи по два, але тепер будуть обрані другі елементи кожної групи, тобто елементи з парним порядковим номером.

Ще як приклад для розуміння псевдокласу: nth-child ми виберемо з його допомогою кожен четвертий елемент, тобто четвертий, восьмий, дванадцятий, шістнадцятий і т. д. Для цього розділимо елементи на групи по чотири і потім виберемо кожен четвертий елемент елемент.

Нижче наведено список із десяти елементів, і ми скористаємося псевдокласами: nth-child,: first-child і: last-child, щоб вибрати елементи, які хочемо виділити.

Використання псевдокласу CSS:nth-child для вибору єдиного елемента

Задаючи псевдоклассу:nth-child значення як числа, можна вибрати, якого нащадку з групи звернутися:

Елемент 1
Елемент 2
Елемент 3
Елемент 4
Елемент 5
Елемент 6
Елемент 7
Елемент 8
Елемент 9
Елемент 10

Використання псевдокласу CSS:nth-child для вибору всіх елементів, крім перших п'яти

Якщо задати псевдокласу: nth-child значення у вигляді n+число, можна вибрати всі елементи, починаючи з елемента з цим порядковим номером:

Елемент 1
Елемент 2
Елемент 3
Елемент 4
Елемент 5
Елемент 6
Елемент 7
Елемент 8
Елемент 9
Елемент 10

Використання псевдокласу CSS:nth-child для вибору перших п'яти елементів

Коли ми задаємо псевдокласу: nth-child значення як негативного n+число, ми вибираємо всі елементи, що знаходяться до елемента з цим порядковим номером:

Елемент 1
Елемент 2
Елемент 3
Елемент 4
Елемент 5
Елемент 6
Елемент 7
Елемент 8
Елемент 9
Елемент 10

Використання псевдокласу CSS:nth-child для вибору кожного третього елемента

Псевдоклас:nth-child можна використовувати, щоб вибрати послідовність елементів, задаючи, скільки елементів у послідовності та порядковий номер потрібного елемента. Якщо встановити значення 3n+1, буде обрано кожен третій елемент, починаючи з першого:

Елемент 1
Елемент 2
Елемент 3
Елемент 4
Елемент 5
Елемент 6
Елемент 7
Елемент 8
Елемент 9
Елемент 10

Використання псевдокласу CSS:nth-child для вибору лише непарних елементів

Можна встановити псевдокласс:nth-child значення odd (непарний), щоб вибрати всі елементи з непарними порядковими номерами. Тобто, перший, третій, п'ятий, сьомий, дев'ятий тощо елементи. Це дуже зручно, щоб задавати кольори сусіднім рядам таблиці.

Елемент 1
Елемент 2
Елемент 3
Елемент 4
Елемент 5
Елемент 6
Елемент 7
Елемент 8
Елемент 9
Елемент 10

Використання псевдокласу CSS:nth-child для вибору лише парних елементів

Цей приклад показує те, що й минулий, але цього разу вибрано всі елементи з парними порядковими номерами. Т. е., другий, четвертий, шостий, восьмий, десятий і т. д. елементи:

Елемент 1
Елемент 2
Елемент 3
Елемент 4
Елемент 5
Елемент 6
Елемент 7
Елемент 8
Елемент 9
Елемент 10

Використання псевдокласу CSS:first-child для вибору першого елемента

Інший псевдоклас: first-child вибере перший елемент:

Елемент 1
Елемент 2
Елемент 3
Елемент 4
Елемент 5
Елемент 6
Елемент 7
Елемент 8
Елемент 9
Елемент 10

Використання псевдокласу CSS:last-child для вибору останнього елемента

Крім псевдокласу: first-child є псевдоклас: last-child, який вибере останній елемент із групи елементів:

Елемент 1
Елемент 2
Елемент 3
Елемент 4
Елемент 5
Елемент 6
Елемент 7
Елемент 8
Елемент 9
Елемент 10

Використання псевдокласу CSS:nth-last-child для вибору передостаннього елемента

Ще можна використовувати псевдоклас: nth-last-child, який поєднує можливості псевдокласів: last-child і: nth-child, щоб починати відлік елементів з кінця. Тобто, можна вибрати елемент, відраховуючи порядкові номери з кінця групи, наприклад, у групі десяти елементів можна вибрати другий з кінця елемент:

Елемент 1
Елемент 2
Елемент 3
Елемент 4
Елемент 5
Елемент 6
Елемент 7
Елемент 8
Елемент 9
Елемент 10


Ознайомтеся з можливостями псевдокласу nth-child за допомогою «Конструктора nth-child».

Іноді, при оформленні сторінок, хочеться трохи автоматизувати стилі CSS.

Одна з проблем, з якою можна зіткнутися: як вибрати всі парні елементи списку, таблиці, блоку та інших елементів на веб-сторінці.

Можна, звичайно, кожному парному елементу привласнити якийсь певний class, але це добре, коли елементів не надто багато. Додавати все це вручну не завжди можливо і не завжди хочеться.

Мені хотілося б розповісти про метод, який ґрунтується на використанні псевдокласу nth-child.

Цей псевдоклас з'явився в CSS3, тому потрібно мати на увазі, що на старих браузерах це може не працювати. Але можливості, які з'являються при його використанні, дуже вражають.

Одним із способів застосування цього псевдокласу на практиці є вибірка всіх парних елементів, що розташовуються у дереві HTML-документа.

Існує кілька варіантів, як це можна реалізувати. Давайте їх розберемо.


1 варіант. Використовувати параметр even.

Припустимо, що у нас є такий список:

  • Елемент 1
  • Елемент 2
  • Елемент 3
  • Елемент 4
  • Елемент 5
  • Елемент 6
  • Елемент 7
  • Елемент 8
  • Елемент 9
  • Елемент 10

Щоб виділити червоним кольором усі парні елементи в цьому списку, потрібно додати стиль CSS:

Ul li:nth-child(even) (color:#F00;)

У результаті, вийде наступна картина.

Even – це ключове слово, яке означає, що будуть вибрані парні елементи.

Гарне рішення, чи не так? Усього один рядок CSS стилів.

2 варіант. Використовувати параметр 2n.

Цей варіант можна використовувати як альтернативний. Значення 2n означає, що буде обрано кожен другий елемент, а кожен другий елемент, по суті, є парним.

Ось як це може бути використане для таблиць.

Стовпець 1 Стовпець 2&.
t;td>6
7 7
8 8
9 9

І стилі CSS

Tr:nth-child(2n) (color:#F00;)

Текст у кожному парному елементі tr став червоним.

webgyry.info

Підтримка браузерами

12.0+ 9.0+ 3.5+ 4.0+ 9.6+ 3.2+

Опис

Псевдо-клас:nth-child() вибирає дочірні елементи на основі їхньої позиції (порядкового номера) всередині батьківського елемента.

Синтаксис

:nth-child(число) ( властивості )

У круглих дужках вказується аргумент, який може бути числом, ключовим словом або числовим виразом у вигляді an+b, де a і b цілі числа, а n - лічильник, що автоматично приймає цілі негативні значення від 0 і більше: 0, 1, 2, 3, ….

За допомогою числа можна вказати конкретний порядковий номер дочірнього елемента, до якого потрібно застосувати стиль:

/* вибрати третій пункт списку */ ul li:nth-child(3) ( color: red; )

Усього є два можливі ключові слова: odd (непарні) і even (парні). Вони дозволяють вибирати дочірні елементи, що мають парні або непарні порядкові номери:

/* вибрати всі рядки в таблиці з непарним порядковим номером */ tr:nth-child(odd) td (background-color: silver; )

Частина виразу «an» обчислює позиції дочірніх елементів за такою формулою: число * n, тому що n - лічильник, замість нього при обчисленні автоматично підставляються числові значення починаючи з 0 і далі значення щоразу збільшується на одиницю більше попереднього: 0,1,2 ,3 і т.д. Допустимо нам необхідно вибрати кожен третій пункт списку, для цього нам треба написати лише 3n:


ul li:nth-child(3n) ( color: red; )


3 * 0 = 0 - нічого не вибрано
3 * 1 = третій пункт
3 * 2 = 6-ий пункт
і т.д.

Частина виразу «b» дозволяє вказати, з якої позиції слід починати вибір елементів. Допустимо нам необхідно вибрати кожен третій пункт списку, починаючи з другого пункту у списку, для цього нам треба написати наступний вираз 3n + 2:

Ul li: nth-child (3n + 2) (color: red; )

Таким чином пункти списку вибиратимуться за такою формулою:
(3 * 0) + 2 = другий пункт
(3 * 1) + 2 = 5-ий пункт
(3 * 2) + 2 = 8-ий пункт
і т.д.

Приклад:

Приклад
текст
текст
текст
текст
текст
текст
текст
текст
текст
текст

Результат цього прикладу:

puzzleweb.ru

Підтримка браузерами

Селектор: nth-child
- один із небагатьох CSS-селекторів, який майже повністю підтримується в сучасних браузерах і абсолютно не підтримується у IE, навіть у IE8. Тому коли справа доходить до його використання, і кінцевий результат зроблений за технологією прогресивного поліпшення - ви можете сміливо використовувати його для деяких оформлювальних елементів, як забарвлення рядків таблиці. Однак не варто застосовувати його у більш серйозних випадках. Наприклад, покладатись на нього в розкладці сайту або видаляти праве поле з кожного третього блоку в сітці три на три, щоб вони увійшли до ряду.

Порятунком тут може бути бібліотека jQuery, яка реалізує підтримку всіх CSS-селекторів, включаючи: nth-child, навіть в Internet Explorer.

web-standards.ru

Значення та застосування

Псевдоклас :nth-child()дозволяє вибрати дочірні елементи всередині батьківського елемента залежно від їхнього розміщення (порядкового номера).

Застосування даного псевдокласу поширене, він дозволяє чергувати стилі рядків у таблицях, списках, надати стиль поєднанню дочірніх елементів тощо.

CSS синтаксис:

:nth-child(номер | ключове слово | формула)(Блок оголошень; )

Приклад використання

Стилізація за порядковим номером

Давайте розглянемо приклад, в якому перед Вами стоїть завдання змінити стиль для всіх елементів, виділених помаранчевим кольором на зображенні:


Що спільного у елементів, виділених на зображенні? А загальне у них те, що вони виділені помаранчевим кольором. Смішно? Не думаю. Загальне у них все ж таки є, елементи

  • є другими дочірніми елементами своїх батьків, а елемент

    теж можна порахувати, та його порядковий номер буде третім (третій дочірній елемент свого батька ). Щоб стилізувати ці елементи, нам необхідно використати псевдоклас :nth-child.

    Перейдемо, наприклад:

    Псевдоклас: first-child

    Перший заголовок h2 тега body

    • один
    • два
    • три

    Другий заголовок h2 тега body

    Перший заголовок h2 тега article

    • один
    • два
    • три

    :nth-childми стилізували елементи

    і
  • , які мають певний порядковий номер дочірнього елемента всередині батьківських елементів.

    Результат нашого прикладу:


    Стилізація за ключовим словом

    Як значення псевдокласу :nth-child()може виступати як порядковий номер дочірніх елементів, які потрібно стилізувати, а й ключові слова, які можуть визначати цілу групу елементів. Як ключове слово можна використовувати два значення:

    • even (парні елементи)
    • odd (непарні елементи)

    Стилізація елементів з використанням ключових слів має дуже широке застосування, тому що ви можете вибрати і стилізувати парні, або непарні дочірні елементи в документі.

    Давайте для прикладу створимо дві прості таблиці з різними стильовими класами та розглянемо наочну різницю у застосуванні значень ключових слів псевдокласу :nth-childдля HTML елемента , Який визначає рядок таблиці:

    Стилізація парних та непарних дочірніх елементів

    Значення even (парні)
    1 рядокПозиціяКількість
    2 рядок
    3 рядок
    4 рядок
    5 рядок
    Значення odd (непарні)
    1 рядокПозиціяКількість
    2 рядок
    3 рядок
    4 рядок
    5 рядок

    У цьому прикладі з використанням псевдокласу :nth-child()ми стилізували парнірядки першої таблиці (елементи ) та непарніу другій таблиці.


    Стилізація за простою математичною формулою

    Псевдоклас :nth-child()дозволяє вибрати як парні, непарні, чи дочірні елементи з певним порядковим номером, а й дочірні елементи, задані по елементарної математичної формуле. Давайте розглянемо наступний селектор і розберемо, що означає цей запис:

    td:nth-child(4n+2)

    ) усередині рядка, починаючи з другого осередку таблиці, буде стилізована:

    • 4n- Кожен четвертий елемент.
    • 2

    У формулах допускається використання значень зі знаком віднімання, але цього зазвичай немає необхідності:

    td:nth-child(4n-1)( background-color: lightblue; / * встановлюємо колір заднього фону * / )

    Цей селектор означає, що кожен четвертий осередок таблиці ( ) всередині рядка, починаючи з третього осередку таблиці (-1 осередку немає з об'єктивних причин, тому відбувається зрушення вліво), буде стилізовано:

    • 4n- Кожен четвертий елемент.
    • -1 - З якого елемента починати.

    Давайте розглянемо приклад використання:

    Стилізація дочірніх елементів за математичною формулою

    1234567891011121314
    2
    3
    4

    У цьому прикладі з використанням псевдокласу: nth-child ми вибрали і стилізували кожен четвертий осередок таблиці ( ) усередині рядка, починаючи з другого осередку таблиці. Результат нашого прикладу:


    basicweb.ru

    Як працює CSS-селектор nth-child

    У CSS існує селектор, якщо бути більш точним, псевдоселектор, званий nth-child. Приклад його використання:

    Ul li:nth-child(3n+3) ( color: #ccc; )

    CSS робить наступне: застосовує стилі для кожного третього елемента ненумерованого списку. А саме 3-го, 6-го, 9-го, 12-го тощо. Але як це працює? А також яку вигоду можна отримати, використовуючи nth-child?

    Основний сенс полягає у вираженні у дужках. nth-child приймає два ключові слова: even(парний) та odd(Непарний). Сенс їх абсолютно зрозумілий. Even вибирає парні елементи (2, 4, 6), odd - непарні (1, 3, 5).

    Як показано у прикладі вище, nth-child може обробляти вирази. Який найпростіший можливий вираз? Просто число. Якщо ви напишіть якесь число в дужках, то буде обрано один єдиний елемент. Наприклад, виберемо п'ятий елемент списку:

    Ul li:nth-child(5) ( color: #ccc; )

    Повернемося до нашого першого прикладу, у якому ми використали вираз (3n+3). Як він працює? Чому він обирає кожен третій елемент? Вся суть у змінній n. Вона приймає цілі значення від нуля та більше. Давайте розглянемо докладніше:

    (3 x 0) + 3 = 3 = 3-ий елемент (3 x 1) + 3 = 6 = 6-ий елемент (3 x 2) + 3 = 9 = 9-ий елемент і т.д.

    Тепер спробуємо такий вираз: nth-child(2n+1):

    (2 x 0) + 1 = 1 = перший елемент (2 x 1) + 1 = 3 = третій елемент (2 x 2) + 1 = 5 = 5-ий елемент і т.д.

    У результаті отримали те саме, що і у випадку з odd , таким чином немає потреби часто використовувати такий вираз. Більш того, наш перший приклад також можна спростити і використовувати замість оригінального виразу (3n+3), вираз (3n):

    (3 x 0) + 0 = 0 = немає відповідності (3 x 1) + 0 = 3 = третій елемент (3 x 2) + 0 = 6 = 6-ий елемент і т.д.

    Як бачите, результат той самий, але не треба писати "+3". Також ми можемо використати негативні значення у виразі. Наприклад, 4n-1:

    (4 x 0) - 1 = -1 = немає відповідності (4 x 1) - 1 = 3 = третій елемент (4 x 2) - 1 = 7 = 7-ий елемент і т.д.

    Використання негативних значень для коефіцієнта при n виглядає трохи дивно, тому що у разі негативного результату не буде знайдено відповідність. Вам потрібно буде постійно змінювати вираз, щоб додати позитивні елементи. Як виявилося, цей підхід дуже зручний вибір перших n елементів. Розглянемо приклад з "-n+3":

    0 + 3 = 3 = 3-ий елемент -1 + 3 = 2 = 2-ий елемент -2 + 3 = 1 = 1-ий елемент -3 + 3 = 0 = немає відповідності

    Кросбраузерність

    nth-child є одним з тих найнещасніших атрибутів, які є повністю кросбраузерними, за винятком абсолютного нуля в IE, навіть 8-ої версії. Тому, коли мова заходить про його використання, то якщо очікуваний результат - це певною мірою візуальний ефект (наприклад розмальовка рядків якоїсь таблиці), то це ідеальний підхід. Але, мабуть, не варто використовувати його для чогось важливішого, що може вплинути, наприклад, на коректність верстки.

    Звичайно, якщо ви використовуєте jQuery, то вам не варто переживати з цього приводу, тому що jQuery працює навіть в Internet Explorer.

    Ну і насамкінець

    Ви можете пограти з різними виразами для селектора на сторінці з прикладом.

    www.css-tricks.ru

    Значення

    Значення Опис
    Число Позитивне число з 1. Задає номер елемента, якого ми хочемо звернутися. Нумерація елементів починається з першого.
    odd Непарні елементи.
    even Чітні елементи.
    Вираз Можна складати спеціальні вирази з літерою n, яка позначає всі цілі числа від нуля (не від одиниці!)до нескінченності. Так, 2n означає всі парні числа (починаючи з другого). Як це зрозуміти? Підставляємо в n послідовно числа від 0 і так далі: якщо n = 0, то 2n дасть 0 такого елемента немає ( нумерація елементів із 1!), якщо n = 1, то 2n дасть 2 другий елемент, якщо n = 2, 2n дає 4 - четвертий елемент. Якщо написати 3n – це буде кожен третій елемент (починаючи з третього!), і таке інше.

    Приклади

    Приклад

    У даному прикладі ми зробимо червоного кольору, який є 4-м нащадкомсвого батька (4-им всередині ol):

    Результат виконання коду:

    Приклад

    Нині червоними зробимо все парні li:

    Результат виконання коду:

    Приклад

    Нині червоними зробимо все непарні li:

    Результат виконання коду:

    Приклад

    Нині червоними зробимо кожну третю li (починаючи з третьої):

    Результат виконання коду:

    Приклад

    У селекторі можна вказати діапазон елементів. Допустимо, у вас є список із 20 елементів і потрібно вибрати елементи з 7 по 14 включно. Це можна зробити так:

    Результат виконання коду:

    code.mu

    Syntax

    The nth-child pseudo-class specified with a single argument, яких represents the pattern for matching elements.

    Keyword values

    odd Represents elements whose numeric position in series of siblings is odd: 1, 3, 5, etc. even Represents elements whose numeric position in a series siblings is even: 2, 4, 6, etc.

    Functional notation

    Represents elements які numerické position в series of siblings matches the pattern An+B , для every positive integer або zero value of n . index of the first element is 1 . The values ​​A and B must both be s.

    Formal syntax

    :nth-child( [ of ]?)

    where
    = even odd
    =

    where
    =

    where
    =
    = ">" " " "~" " "

    where
    =

    У CSS існує селектор, якщо бути більш точним, псевдоселектор, званий nth-child. Приклад його використання:

    Ul li:nth-child(3n+3) ( color: #ccc; )

    CSS робить наступне: застосовує стилі для кожного третього елемента ненумерованого списку. А саме 3-го, 6-го, 9-го, 12-го тощо. Але як це працює? А також яку вигоду можна отримати, використовуючи nth-child?

    Основний сенс полягає у вираженні у дужках. nth-child приймає два ключові слова: even(парний) та odd(Непарний). Сенс їх абсолютно зрозумілий. Even вибирає парні елементи (2, 4, 6), odd – непарні (1, 3, 5).

    Як показано у прикладі вище, nth-child може обробляти вирази. Який найпростіший можливий вираз? Просто число. Якщо ви напишіть якесь число в дужках, то буде обрано один єдиний елемент. Наприклад, виберемо п'ятий елемент списку:

    Ul li:nth-child(5) ( color: #ccc; )

    Повернемося до нашого першого прикладу, у якому ми використали вираз (3n+3). Як він працює? Чому він обирає кожен третій елемент? Вся суть у змінній n. Вона приймає цілі значення від нуля та більше. Давайте розглянемо докладніше:

    (3 x 0) + 3 = 3 = 3-ий елемент (3 x 1) + 3 = 6 = 6-ий елемент (3 x 2) + 3 = 9 = 9-ий елемент і т.д.

    Тепер спробуємо такий вираз: nth-child(2n+1):

    (2 x 0) + 1 = 1 = перший елемент (2 x 1) + 1 = 3 = третій елемент (2 x 2) + 1 = 5 = 5-ий елемент і т.д.

    У результаті отримали те саме, що і у випадку з odd , таким чином немає потреби часто використовувати такий вираз. Більш того, наш перший приклад також можна спростити і використовувати замість оригінального виразу (3n+3), вираз (3n):

    (3 x 0) + 0 = 0 = немає відповідності (3 x 1) + 0 = 3 = третій елемент (3 x 2) + 0 = 6 = 6-ий елемент і т.д.

    Як бачите, результат той самий, але не треба писати "+3". Також ми можемо використати негативні значення у виразі. Наприклад, 4n-1:

    (4 x 0) - 1 = -1 = немає відповідності (4 x 1) - 1 = 3 = третій елемент (4 x 2) - 1 = 7 = 7-ий елемент і т.д.

    Використання негативних значень для коефіцієнта при n виглядає трохи дивно, тому що у разі негативного результату не буде знайдено відповідність. Вам потрібно буде постійно змінювати вираз, щоб додати позитивні елементи. Як виявилося, цей підхід дуже зручний вибір перших n елементів. Розглянемо приклад з "-n+3":

    0 + 3 = 3 = 3-ий елемент -1 + 3 = 2 = 2-ий елемент -2 + 3 = 1 = 1-ий елемент -3 + 3 = 0 = немає відповідності

    Кросбраузерність

    nth-child є одним з тих найнещасніших атрибутів, які є повністю кросбраузерними, за винятком абсолютного нуля в IE, навіть 8-ої версії. Тому, коли мова заходить про його використання, то якщо очікуваний результат - це певною мірою візуальний ефект (наприклад розмальовка рядків певної таблиці), то це ідеальний підхід. Але, мабуть, не варто використовувати його для чогось важливішого, що може вплинути, наприклад, на коректність верстки.

    Звичайно, якщо ви використовуєте jQuery, то вам не варто переживати з цього приводу, тому що jQuery працює навіть в Internet Explorer.

    Ну і насамкінець

    Ви можете пограти з різними виразами для селектора на

    Опис

    Псевдоклас :nth-child використовується для додавання стилю елементів на основі нумерації в дереві елементів.

    Синтаксис

    елемент: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 наведено деякі можливі вирази та ключові слова, а також зазначено, які номери елементів будуть задіяні.

    HTML5 CSS3 IE Cr Op Sa Fx

    nth-child

    21342135 213621372138
    Нафта1634 627457
    Золото469 725647
    Дерево773 793486
    Камені2334 8853103

    У цьому прикладі псевдоклас :nth-child використовується зміни стилю першого рядка таблиці, і навіть виділення кольором всіх парних рядків (рис. 1).

    IPad