Как применить конкретный стиль CSS для каждого (ради аргумента) нечетного элемента в наборе элементов, принимая во внимание набор исключенных элементов?
Проблема реплицируется здесь (показана в кодефене):
http://codepen.io/houdmont/pen/VLOBBG
Применяется ряд элементов, которые имеют класс .foo
:
<a href="#" class="foo">1. Blue</a>
<a href="#" class="foo">2. Green</a>
<a href="#" class="foo">3. Blue</a>
<a href="#" class="foo bar">4. Hidden (blue)</a>
<a href="#" class="foo bar">5. Hidden (blue)</a>
<a href="#" class="foo bar">6. Hidden (blue)</a>
<a href="#" class="foo">7. Green</a>
Когда применяется класс .bar
, элемент скрыт.
Я бы хотел, чтобы оставшиеся элементы с .foo
применялись для стилизации нечетно/четно.
Попытайтесь сделать следующее:
.bar {
display: none;
}
/**
* This clearly doesn't work as I'd hoped it would.
*/
.foo:not(.bar):nth-of-type(even) {
color: green;
}
В идеале, я бы хотел, чтобы седьмой элемент был зеленым, хотя это был "нечетный" элемент, если бы я мог исключить элементы с классом .bar
, тогда он был бы четвертым элементом и поэтому считался бы "четным" ", установив цвет в зеленый цвет.
Возможно ли это с помощью CSS?