Bellicus
@Bellicus
И швец, и жнец, и на дуде игрец.

Как скомпоновать :not() и :nth-of-type()?

Есть примерная верстка
<ul>
	<li></li>
	<li class="hidden"></li>
	<li></li>
	<li></li>
	<li></li>
	<li></li>
	<li class="hidden"></li>
	<li></li>
	<li class="hidden"></li>
	<li></li>
	<li></li>
</ul>

Как раскрасить список зеброй пропуская пункты с классом hidden используя лишь на css, и возможно ли это?

Такая конструкция не работает, так как nth-of-type и nth-child считают все подряд.
То есть, пункты с hidden не окрасятся, но в расчете на "первый-второй" все равно будут участвовать.
li:not(.hidden).nth-of-type(even) 
    background #ccc


Кому проще на словах, то задача звучит примерно так:
Раскрасить каждый второй пункт, исключая из расчета пункты с классом hidden
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
Moskus
@Moskus
Конструкция
li:nth-of-type(even):not(.hidden) {
  background-color: #ccc;
}

синтакстически верна, но, естественно, не решает и не может принципиально решить задачу, которую хочет решить автор вопроса.

Автор хочет исключить из рассмотрения элементы с классом .hidden при определении четных и нечетных элементов списка, но CSS такую функцию просто не выполняет. Чтобы решить задачу, нужно убирать элементы из DOM-дерева, тогда CSS их не увидит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы