:not()
Свойство в CSS является отрицанием псевдо - классом и принимает простой селектор или список выбора в качестве аргумента. Он соответствует элементу, который не представлен аргументом. Переданный аргумент не может содержать дополнительных селекторов или селекторов псевдоэлементов.
Возможность использовать список селекторов в качестве аргумента считается экспериментальной, хотя на момент написания этой статьи количество ее поддерживаемых расширяется, включая Safari (с 2015 г.), Firefox (с декабря 2020 г.) и Chrome (с января 2021 г.).
/* the X argument can be replaced with any simple selectors */ :not(X) ( property: value; )
В этом примере у нас есть неупорядоченный список с одним классом в
Наш CSS выберет все
.different
.
/* Style everything but the .different class */ li:not(.different) ( font-size: 3em; )
Вы также можете сделать то же самое, используя псевдоклассы, которые считаются простым селектором.
p:not(:nth-child(2n+1)) ( font-size: 3em; )
Однако, если мы используем селектор псевдоэлементов в качестве аргумента, он не даст ожидаемого результата.
:not(::first-line) ( /* ::first-line is a pseudo element selector and not a simple selector */ color: white; )
Сложные селекторы
/* select all
s that are not descendants of */ p:not(article *) ( )
Визуальный пример
Специфика
Специфика :not
псевдокласса - это специфика его аргумента. :not()
Псевдо-класс не добавляет к специфичности селектора, в отличие от других псевдо-классов.
Отрицания не могут быть вложенными, поэтому :not(:not(… ))
никогда не разрешаются. Авторы также должны отметить, что, поскольку псевдоэлементы не считаются простым селектором, они не могут использоваться в качестве аргумента для :not(X)
. Будьте внимательны при использовании селекторов атрибутов, поскольку некоторые из них не так широко поддерживаются, как другие. Допускается объединение :not
селекторов с другими :not
селекторами.
Поддержка браузера
:not()
Псевдо - класс был обновлен в CSS селекторы Level 4 спецификации , чтобы список аргументов. В CSS Selectors Level 3 он мог принимать только один простой селектор. В результате поддержка браузером немного разделена между черновиками Уровня 3 и Уровня 4.
Простые селекторы
IE | Край | Fire Fox | Хром | Сафари | Опера |
---|---|---|---|---|---|
9+ | Все | Все | Все | 12.1+ | Все |
Android Chrome | Android Firefox | Браузер Android | iOS Safari | Opera Mobile |
---|---|---|---|---|
Все | Все | Все | Все | Все |
Списки выбора
Эти данные о поддержке браузером взяты из Caniuse, где есть более подробная информация. Число означает, что браузер поддерживает эту функцию в этой версии и выше.
Рабочий стол
Хром | Fire Fox | IE | Край | Сафари |
---|---|---|---|---|
88 | 84 | Нет | 88 | 9 |
Мобильный / планшет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 год | 9,0-9,2 |
Дополнительная информация
- Модуль селекторов CSS, уровень 3
- Спецификация CSS Selectors Level 4