Die :not()
Eigenschaft in CSS ist eine Negationspseudoklasse und akzeptiert einen einfachen Selektor oder eine Selektorliste als Argument. Es entspricht einem Element, das nicht durch das Argument dargestellt wird. Das übergebene Argument darf keine zusätzlichen Selektoren oder Pseudoelement-Selektoren enthalten.
Die Möglichkeit, eine Liste von Selektoren als Argument zu verwenden, wird als experimentell angesehen, obwohl ihre Unterstützung zum Zeitpunkt dieses Schreibens zunimmt, einschließlich Safari (seit 2015), Firefox (seit Dezember 2020) und Chrome (seit Januar 2021).
/* the X argument can be replaced with any simple selectors */ :not(X) ( property: value; )
In diesem Beispiel haben wir eine ungeordnete Liste mit einer einzelnen Klasse auf der
Unser CSS würde alle auswählen
.different
.
/* Style everything but the .different class */ li:not(.different) ( font-size: 3em; )
Sie können dies auch mit Pseudoklassen tun, die als einfacher Selektor betrachtet werden.
p:not(:nth-child(2n+1)) ( font-size: 3em; )
Wenn wir jedoch einen Pseudoelement-Selektor als Argument verwenden, wird nicht das erwartete Ergebnis erzielt.
:not(::first-line) ( /* ::first-line is a pseudo element selector and not a simple selector */ color: white; )
Komplexe Selektoren
/* select all
s that are not descendants of */ p:not(article *) ( )
Visuelles Beispiel


:not()
Spezifität
Die Spezifität der :not
Pseudoklasse ist die Spezifität ihres Arguments. Die :not()
Pseudoklasse erhöht im Gegensatz zu anderen Pseudoklassen nicht die Selektorspezifität.
Negationen dürfen nicht verschachtelt werden und sind daher :not(:not(… ))
niemals zulässig. Autoren sollten auch beachten, dass Pseudoelemente, da sie nicht als einfacher Selektor betrachtet werden, nicht als Argument für gültig sind :not(X)
. Seien Sie vorsichtig, wenn Sie Attributselektoren verwenden, da einige als andere nicht allgemein unterstützt werden. Das Verketten von :not
Selektoren mit anderen :not
Selektoren ist zulässig.
Browser-Unterstützung
Die :not()
Pseudoklasse wurde in der CSS Selectors Level 4-Spezifikation aktualisiert, um eine Argumentliste zu ermöglichen. In CSS Selectors Level 3 konnte nur ein einziger einfacher Selektor akzeptiert werden. Infolgedessen ist die Browserunterstützung zwischen den Entwürfen der Stufen 3 und 4 etwas aufgeteilt.
Einfache Selektoren
IE | Kante | Feuerfuchs | Chrom | Safari | Oper |
---|---|---|---|---|---|
9+ | Alle | Alle | Alle | 12.1+ | Alle |
Android Chrome | Android Firefox | Android Browser | iOS Safari | Opera Mobile |
---|---|---|---|---|
Alle | Alle | Alle | Alle | Alle |
Auswahllisten
Diese Browser-Unterstützungsdaten stammen von Caniuse, das detaillierter ist. Eine Zahl gibt an, dass der Browser die Funktion ab dieser Version unterstützt.
Desktop
Chrom | Feuerfuchs | IE | Kante | Safari |
---|---|---|---|---|
88 | 84 | Nein | 88 | 9 |
Handy / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9.0-9.2 |
Mehr Informationen
- CSS Selectors Module Level 3
- CSS Selectors Level 4 Spezifikation