De :not()
eigenschap in CSS is een negatie-pseudoklasse en accepteert een eenvoudige selector of een selectorlijst als argument. Het komt overeen met een element dat niet wordt vertegenwoordigd door het argument. Het doorgegeven argument mag geen extra selectors of pseudo-element selectors bevatten.
De mogelijkheid om een lijst met selectors als argument te gebruiken, wordt als experimenteel beschouwd, hoewel de ondersteuning op het moment van schrijven toeneemt, inclusief Safari (sinds 2015), Firefox (sinds december 2020) en Chrome (sinds januari 2021).
/* the X argument can be replaced with any simple selectors */ :not(X) ( property: value; )
In dit voorbeeld hebben we een ongeordende lijst met een enkele klasse op de
Onze CSS zou alle
.different
.
/* Style everything but the .different class */ li:not(.different) ( font-size: 3em; )
U kunt hetzelfde doen met pseudoklassen die als een eenvoudige selector worden beschouwd.
p:not(:nth-child(2n+1)) ( font-size: 3em; )
Als we echter een pseudo-elementenselector als ons argument gebruiken, zal dit niet het verwachte resultaat opleveren.
:not(::first-line) ( /* ::first-line is a pseudo element selector and not a simple selector */ color: white; )
Complexe kiezers
/* select all
s that are not descendants of */ p:not(article *) ( )
Visueel voorbeeld
Specificiteit
De specificiteit van de :not
pseudo-klasse is de specificiteit van zijn argument. De :not()
pseudo-klasse draagt niet bij aan de specificiteit van de selector, in tegenstelling tot andere pseudo-klassen.
Ontkenningen mogen niet worden genest en zijn dus :not(:not(… ))
nooit toegestaan. Auteurs moeten ook opmerken dat aangezien pseudo-elementen niet als een eenvoudige selector worden beschouwd, ze niet geldig zijn als argument voor :not(X)
. Let op bij het gebruik van attribuutkiezers, aangezien sommige niet algemeen worden ondersteund als andere. Het koppelen van :not
selectors met andere :not
selectors is toegestaan.
Browser-ondersteuning
De :not()
pseudo-klasse is bijgewerkt in de CSS Selectors Level 4-specificatie om een argumentlijst mogelijk te maken. In CSS Selectors Level 3 was het slechts in staat om een enkele eenvoudige selector te accepteren. Als gevolg hiervan is de browserondersteuning enigszins verdeeld over de concepten van niveau 3 en niveau 4.
Eenvoudige selectors
D.W.Z | Rand | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
9+ | Alle | Alle | Alle | 12.1+ | Alle |
Android Chrome | Android Firefox | Android-browser | iOS Safari | Opera Mobile |
---|---|---|---|---|
Alle | Alle | Alle | Alle | Alle |
Selector lijsten
Deze browserondersteuningsgegevens zijn van Caniuse, die meer details bevat. Een getal geeft aan dat de browser de functie ondersteunt vanaf die versie.
Bureaublad
Chrome | Firefox | D.W.Z | Rand | Safari |
---|---|---|---|---|
88 | 84 | Nee | 88 | 9 |
Mobiel / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9.0-9.2 |
Meer informatie
- CSS Selectors Module Niveau 3
- CSS Selectors Level 4-specificatie