Summary
The negation CSS pseudo-class, :not(X)
, is a functional notation taking a simple selector X as an argument. It matches an element that is not represented by the argument. X must not contain another negation selector.
Notes:
- Useless selectors can be written using this pseudo-class. For example,
:not(*)
matches any element which is not any element, so the rule will never be applied. - It is possible to rewrite other rules. E.g.
foo:not(bar)
will match the same element as the simplerfoo
. Nevertheless the specificity of the first one is higher. :not(foo){}
will match anything that isn'tfoo
, including<html>
and<body>
.- This selector only applies to one element; you cannot use it to exclude all ancestors. For instance,
body :not(table) a
will still apply to links inside of a table, since<tr>
will match with the:not()
part of the selector.
Syntax
:not(selector) { style properties }
Examples
p:not(.classy) { color: red; } body :not(p) { color: green; }
Given the above CSS and the HTML below...
<p>Some text.</p> <p class="classy">Some other text.</p> <span>One more text<span>
You get output like this:
Specifications
Specification | Status | Comment |
---|---|---|
Selectors Level 4 The definition of ':not()' in that specification. |
Working Draft | Extends its argument to allow some non-simple selectors. |
Selectors Level 3 The definition of ':not()' in that specification. |
Recommendation | Initial definition. |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 1.0 | 1.0 (1.7 or earlier) | 9.0 | 9.5 | 3.2 |
Extended arguments | No support | No support | No support | No support | No support |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | 2.1 | 1.0 (1) | 9.0 | 10.0 | 3.2 |
Extended arguments | No support | No support | No support | No support | No support |
Document Tags and Contributors
Tags:
Contributors to this page:
ziyunfei,
DominikDitoIvosevic,
teoli,
clongo,
armorking5,
duncancumming,
Sheppy,
bertyhell,
MusikAnimal,
Krinkle,
amitabha197,
frisellcpl,
emiluzelac,
tregagnon,
jswisher,
jjenzz,
kscarfone,
Tripad,
ethertank,
enderandpeter,
McGurk,
justjust,
Jürgen Jeka,
j.j.,
Miken32
Last updated by:
ziyunfei,