:not()
Nieruchomość w CSS jest negacją klasa pseudo i akceptuje prosty przełącznik lub listę wyboru jako argument. Dopasowuje element, który nie jest reprezentowany przez argument. Przekazany argument nie może zawierać dodatkowych selektorów ani żadnych selektorów pseudoelementów.
Możliwość korzystania z listy selektorów jako argumentu jest uważana za eksperymentalną, chociaż jej obsługiwana liczba rośnie w momencie pisania tego tekstu, w tym Safari (od 2015), Firefox (od grudnia 2020) i Chrome (od stycznia 2021).
/* the X argument can be replaced with any simple selectors */ :not(X) ( property: value; )
W tym przykładzie mamy nieuporządkowaną listę z jedną klasą w
Nasz CSS wybrałby wszystkie pliki
.different
.
/* Style everything but the .different class */ li:not(.different) ( font-size: 3em; )
Możesz również zrobić to samo, używając pseudoklas, które są uważane za prosty selektor.
p:not(:nth-child(2n+1)) ( font-size: 3em; )
Jeśli jednak użyjemy selektora pseudo elementu jako naszego argumentu, nie przyniesie to oczekiwanego wyniku.
:not(::first-line) ( /* ::first-line is a pseudo element selector and not a simple selector */ color: white; )
Złożone selektory
/* select all
s that are not descendants of */ p:not(article *) ( )
Przykład wizualny
Specyficzność
Specyfiką :not
pseudoklasy jest specyfika jej argumentu. W :not()
przeciwieństwie do innych pseudoklas, pseudoklasa nie zwiększa specyficzności selektora.
Negacje nie mogą być zagnieżdżane, więc :not(:not(… ))
nigdy nie jest dozwolone. Autorzy powinni również zauważyć, że ponieważ pseudoelementy nie są uważane za prosty selektor, nie są one poprawne jako argument :not(X)
. Zachowaj ostrożność podczas korzystania z selektorów atrybutów, ponieważ niektóre z nich nie są tak szeroko obsługiwane, jak inne. Dozwolone jest łączenie :not
selektorów w łańcuchy z innymi :not
selektorami.
Wsparcie przeglądarki
:not()
Klasa pseudo został zaktualizowany w specyfikacji CSS Level 4 selektorów aby umożliwić listę argumentów. W selektorach CSS na poziomie 3 był w stanie zaakceptować tylko jeden prosty selektor. W rezultacie obsługa przeglądarek jest nieco podzielona na wersje robocze poziomu 3 i 4.
Proste selektory
TO ZNACZY | Brzeg | Firefox | Chrom | Safari | Opera |
---|---|---|---|---|---|
9+ | Wszystko | Wszystko | Wszystko | 12.1+ | Wszystko |
Android Chrome | Android Firefox | Przeglądarka Android | iOS Safari | Opera Mobile |
---|---|---|---|---|
Wszystko | Wszystko | Wszystko | Wszystko | Wszystko |
Listy selektorów
Te dane dotyczące obsługi przeglądarek pochodzą od Caniuse, który zawiera więcej szczegółów. Liczba wskazuje, że przeglądarka obsługuje tę funkcję w tej wersji i nowszych.
Pulpit
Chrom | Firefox | TO ZNACZY | Brzeg | Safari |
---|---|---|---|---|
88 | 84 | Nie | 88 | 9 |
Telefon komórkowy / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9,0-9,2 |
Więcej informacji
- Moduł selektorów CSS Poziom 3
- Specyfikacja selektorów CSS poziomu 4