В :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(… ))
никога не е разрешено. Авторите също трябва да отбележат, че тъй като псевдоелементите не се считат за обикновен селектор, те не са валидни като аргумент на :not(X)
. Бъдете внимателни, когато използвате селектори на атрибути, тъй като някои не се поддържат широко като други. Допуска се свързване на :not
селектори с други :not
селектори.
Поддръжка на браузър
В :not()
класа псевдо е актуализирана в Ниво 4 спецификацията на CSS селектори за да позволи списък от аргументи. В CSS селектори ниво 3 той можеше да приеме само един прост селектор. В резултат на това поддръжката на браузъра е малко разделена между черновите на ниво 3 и ниво 4.
Прости селектори
IE | Ръб, край | Firefox | Chrome | Сафари | Опера |
---|---|---|---|---|---|
9+ | всичко | всичко | всичко | 12.1+ | всичко |
Android Chrome | Android Firefox | Браузър за Android | iOS Safari | Opera Mobile |
---|---|---|---|---|
всичко | всичко | всичко | всичко | всичко |
Селекторни списъци
Тези данни за поддръжка на браузъра са от Caniuse, който има повече подробности. Число показва, че браузърът поддържа функцията на тази версия и по-нова.
работен плот
Chrome | Firefox | IE | Ръб, край | Сафари |
---|---|---|---|---|
88 | 84 | Не | 88 | 9 |
Мобилен / таблет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9,0-9,2 |
Повече информация
- Модул CSS селектори ниво 3
- Спецификация на CSS селектори от ниво 4