:not()
Nemovitost v CSS je negací pseudo class a přijímá jednoduchý volič nebo seznam voliče jako argument. Odpovídá prvku, který není reprezentován argumentem. Předaný argument nemusí obsahovat další selektory ani selektory pseudoprvků.
Schopnost používat seznam selektorů jako argument je považována za experimentální, i když v době psaní tohoto článku jeho podpora roste, včetně Safari (od roku 2015), Firefox (od prosince 2020) a Chrome (od ledna 2021).
/* the X argument can be replaced with any simple selectors */ :not(X) ( property: value; )
V tomto příkladu máme neuspořádaný seznam s jedinou třídou na
Náš CSS by vybral všechny
.different
.
/* Style everything but the .different class */ li:not(.different) ( font-size: 3em; )
Totéž můžete udělat pomocí pseudo tříd, které jsou považovány za jednoduchý selektor.
p:not(:nth-child(2n+1)) ( font-size: 3em; )
Pokud však jako argument použijeme selektor pseudoprvků, nepřinese očekávaný výsledek.
:not(::first-line) ( /* ::first-line is a pseudo element selector and not a simple selector */ color: white; )
Složité selektory
/* select all
s that are not descendants of */ p:not(article *) ( )
Vizuální příklad
Specifičnost
Specifičnost :not
pseudotřídy je specifičnost jejího argumentu. :not()
Pseudo-class nepřidá na voliče specifičnosti, na rozdíl od jiných pseudotříd.
Negace nemusí být vnořeny, takže to :not(:not(… ))
není nikdy povoleno. Autoři by si měli také uvědomit, že jelikož pseudoelementy nejsou považovány za jednoduchý selektor, nejsou platné jako argument :not(X)
. Při použití selektorů atributů buďte opatrní, protože některé nejsou široce podporovány jako jiné. Řetězení :not
selektorů s jinými :not
selektory je přípustné.
Podpora prohlížeče
Třída :not()
pseudo byla aktualizována ve specifikaci úrovně CSS Selectors úrovně 4, aby umožňovala seznam argumentů. V CSS Selectors Level 3 byl schopen přijmout pouze jeden jednoduchý selektor. Výsledkem je, že podpora prohlížeče je trochu rozdělena mezi koncepty úrovně 3 a úrovně 4.
Jednoduché selektory
TJ | Okraj | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
9+ | Všechno | Všechno | Všechno | 12,1+ | Všechno |
Android Chrome | Android Firefox | Prohlížeč Android | iOS Safari | Opera Mobile |
---|---|---|---|---|
Všechno | Všechno | Všechno | Všechno | Všechno |
Seznamy voličů
Tato data podpory prohlížeče pocházejí z Caniuse, který obsahuje více podrobností. Číslo označuje, že prohlížeč podporuje tuto funkci v dané verzi a vyšší.
plocha počítače
Chrome | Firefox | TJ | Okraj | Safari |
---|---|---|---|---|
88 | 84 | Ne | 88 | 9 |
Mobilní / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9.0-9.2 |
Více informací
- Úroveň 3 modulu pro výběr CSS
- Specifikace úrovně CSS Selectors úrovně 4