Псевдо-элемент
полезен и удобен в применении.
1 nth-child()
Единственный момент, который мне всегда давался с трудом (а потом быстро забывался) - это запомнить тот алгоритм, по которому данный псевдо-элемент производил свои вычисления.
С ключевыми словами все более или менее ясно и просто - их всего два, одно отвечает за счет четных чисел, другое - за счет нечетных чисел. Нумерация в списках начинается с 1, а не с нуля. Поэтому при выборке с помощью ключевого слова
- выбираются все нечетные позиции (1
odd
). С помощью ключевого слова 1
1, 2, 3, 5, 7, ...
- выбираются четные позиции (1
even
).1
2, 4, 6, 8, ...
Например, так:
или так:
А вот с общей формулой примерного вида
было несколько сложнее. Пока я в “Большой книге CSS3” не нашел простого и краткого объяснения, как “читать” это выражение.1
2n+2
Все просто на самом деле. Допустим, у нас есть такое выражение:
… здесь мы говорим браузеру - применить цвет
и убрать подчеркивание 1
#778899
к тексту каждого второго (1
text-decoration: none;
) элемента 1
2n
, начиная с третьего (1
li
).1
3
Еще примеры:
- выбрать каждый третий элемент, начиная со второго по порядку;1
.third li:nth-child(3n+2)
- выбрать каждый пятый элемент, начиная с третьего элемента;1
.fifth li:nth-child(5n+3)
- выбрать каждый четвертый элемент, начиная со второго.1
.forth li:nth-child(4n+2)
То есть, видя выражение типа
, мы читаем его так: каждый третий элемент, начиная с четвертого. Вопрос остается открытым в отношении загадочной буквы 1
3n+4
.1
n
Как уже можно было догадаться, это всего лишь счетчик. Это объяснение выражения было “подсмотрено” мною на CSS-Tricks (How nth-child Works).
Буква
в этом выражении - счетчик, начинающийся с 1
n
. То есть, если взять первое выражение - 1
0
, то вычисление внутри него будет производиться следующим образом:1
.third li:nth-child(3n+2)
То есть, как и говорилось выше - каждый третий элемент, начиная со второго. Совершенно ничего сложного, как видим. Простая математика и запоминать ничего не нужно. Главное - понять алгоритм вычисления в этом выражении.
Тогда ключевое слово
можно записать в виде выражения 1
odd
, а ключевое слово 1
3n
как выражение 1
even
. Ключевые слова были введены в употребление для удобства ввиду частого использования выражений 1
2n
и 1
2n
.1
3n
На этом все.