Ответ 1
Комбинаторы, такие как >
, +
и пространство для потомков, недопустимы внутри :not()
в CSS; они разрешены только как селектор jQuery. Вы можете узнать больше в этом другом вопросе.
Тем не менее, вы можете использовать :not()
только для li
и вывести часть > a
; однако это будет зависеть от структуры ваших элементов ul
и li
:
li:not(.active) > a {
color: grey;
}
Например, вы всегда можете .span3
другие селекторы, такие как .span3
если вы хотите ограничить его a
элементами с родителями li
этого класса:
li.span3:not(.active) > a {
color: grey;
}
Однако имейте в виду, что вы можете полагаться только на использование :not()
таким образом, если у вас есть контроль над разметкой, или структура по крайней мере предсказуема (например, вы знаете, какие элементы являются родителями). Например, в вашем случае вы смотрите только на li.span3 > a
и применяете стили только тогда, когда li.span3
не имеет активного класса. С помощью этой информации вы можете создать селектор, подобный одному из вышеперечисленных, который должен работать должным образом.