CSS3 определяет псевдокласс * отрицания :
.a:not(.b) {
display: none;
}
Однако он получил поддержку только в IE 9 , поэтому текущий типичный cross-browser решение состоит в том, чтобы установить свойство для всех элементов (включая те, которые вы не хотите сопоставлять), а затем создать другое правило с более специфическим селектором , который восстанавливает исходный стиль.Это все еще имеет проблемы в IE 6 и более ранних версиях, так как они учитывают последний класс только при использовании нескольких классов для одного элемента.
.a {
display: none;
}
.a.b { /* IE6 will treat selector as '.b' */
display: block;
}
Обратите внимание, что если уже есть правила сболее конкретный селектор, который соответствует элементам, к которым вы не хотите прикасаться, или если установлен стиль inline (что не следует делать вне скрипта, манипулирующего страницей), вам не нужнодобавить второе правило, так как .a
имеет такую низкую специфичность.