Trusted by 2 Mn+ QAs & Devs to accelerate their release cycles
CSS Levels 2 and 3 only allowed the :not pseudo-class to accept a single simple selector. For instance, :nota, :not.b, or :not[c] did not work. Level 4 introduces support for lists of selectors in :not. For example, :nota, .b, [c] can be written as :nota, .b and [c].
Last updated on : 2023-03-20
Browser Versions
IE
Edge
Firefox
Chrome
Safari
Opera
Fully Supported
Partially
No Support
Selectors Level 4 # negation
:not( <complex-selector-list> )where <complex-selector-list> = <complex-selector>#where <complex-selector> = <compound-selector> [ <combinator>? <compound-selector> ]*where <compound-selector> = [ <type-selector>? <subclass-selector>* [ <pseudo-element-selector> <pseudo-class-selector>* ]* ]!<combinator> = '>' | '+' | '~' | [ '||' ]where <type-selector> = <wq-name> | <ns-prefix>? '*'<subclass-selector> = <id-selector> | <class-selector> | <attribute-selector> | <pseudo-class-selector><pseudo-element-selector> = ':' <pseudo-class-selector><pseudo-class-selector> = ':' <ident-token> | ':' <function-token> <any-value> ')'where <wq-name> = <ns-prefix>? <ident-token><ns-prefix> = [ <ident-token> | '*' ]? | <id-selector> = <hash-token><class-selector> = '.' <ident-token><attribute-selector> = '[' <wq-name> ']' | '[' <wq-name> <attr-matcher> [ <string-token> | <ident-token> ] <attr-modifier>? ']'where <attr-matcher> = [ '~' | | | '^' | '$' | '*' ]? '='<attr-modifier> = i | s
selector list argument of :not() on IE is not supported on any IE versions.
selector list argument of :not() on Edge is fully supported on 88-111, and not supported on 12-87 Edge versions.
selector list argument of :not() on Firefox is fully supported on 84-113, and not supported on 2-83 Firefox versions.
selector list argument of :not() on Chrome is fully supported on 88-114, and not supported on 4-87 Chrome versions.
selector list argument of :not() on Safari is fully supported on 9.1-16.4, and not supported on 3.2-8 Safari versions.
selector list argument of :not() on Opera is fully supported on 75-95, and not supported on 9.5-74 Opera versions.
selector list argument of :not() on Safari on iOS is fully supported on 9.3-16.4, and not supported on 3.2-8 Safari on iOS versions.
selector list argument of :not() on Android Browser is fully supported on 97-111, and not supported on 2.1-4 Android Browser versions.
selector list argument of :not() on Opera Mobile is fully supported on 64-73, and not supported on 10-12 Opera Mobile versions.
selector list argument of :not() on Chrome for Android is fully supported on all Chrome for Android versions.
selector list argument of :not() on Firefox for Android is fully supported on all Firefox for Android versions.
selector list argument of :not() on Samsung Internet is fully supported on 15-20, and not supported on 4-14 Samsung Internet versions.
Data sourced from
Overall Browser Compatibility Score
Note:selector list argument of :not() shows a browser compatibility score of 82. This is a collective score out of 100 to represent browser support of a web technology. The higher this score is, the greater is the browser compatibility. The browser compatibility score is not a 100% reflection for every browser and the web technology support. However, it does give you an estimate on how much you should rely on a particular web technology in terms of browser compatibility.
Test on 3000+ browsers for selector list argument of :not() & more
Test your website for selector list argument of :not() and other web technologies. Get 100 FREE automation test minutes!
Test NowKaneAI - Testing Assistant
World’s first AI-Powered E2E testing agent.
Did you find this page helpful?