Я хочу, чтобы все 5 детей, если есть ТОЧНО 5. (Если есть 4 или 6, не выбирайте детей.)выбрать все элементы с помощью CSS, если есть ровно 5
Для иллюстрации: http://jsfiddle.net/rudiedirkx/339H6/3/show/
Вы можете выбрать все элементы, если есть 1 очень просто:
:first-child:last-child
Вы можете выбрать элементы, которые находятся в первой 5 и 5 последних:
:nth-child(-n+5):nth-last-child(-n+5)
(красный в демонстрации) Оба не делают то, что я хочу, но иллюстрируют точку: 1 селектор, несколько элементов.
Вы можете выбрать все ребенок, если есть 5 с 5 селекторов:
li:nth-child(1):nth-last-child(5),
li:nth-child(2):nth-last-child(4),
li:nth-child(3):nth-last-child(3),
li:nth-child(4):nth-last-child(2),
li:nth-child(5):nth-last-child(1)
(желтой в скрипке), но это ужасно. Это вдвойне ужасно, когда я решаю, что ТАКЖЕ как 4: если есть ровно 4 элемента ИЛИ 5, выберите их все. Для этого потребуется еще 4 селектора.
Есть ли достойный способ сделать это, что мне не хватает? Я чувствую, что :nth-child(-n+5):nth-last-child(-n+5)
находится на пути, но это выбирает слишком широко. (Зеленый в скрипку.)
Обратите внимание, что ': first-child: last-child' может просто отображаться как': only-child', если специфика не является проблемой (2 псевдокласса против 1). – BoltClock
Я пытался показать, как вы можете сделать выбор с двойным псевдоселектором. 'nth-child (1)' такой особенный, но я надеялся на что-то за 5 и т. д. – Rudie