| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>CSS Selectors: The negation pseudo-class</title> |
| <link rel="help" href="https://drafts.csswg.org/selectors-3/#negation"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/css/support/parsing-testcommon.js"></script> |
| <script> |
| test_valid_selector('button:not([disabled])'); |
| test_valid_selector('*:not(foo)', |
| ['*:not(foo)', ':not(foo)']); |
| test_valid_selector(':not(:link):not(:visited)'); |
| test_valid_selector('*|*:not(*)', ':not(*)'); |
| test_valid_selector(':not(:hover)'); |
| test_valid_selector(':not(*|*)', ':not(*)'); |
| test_valid_selector('foo:not(bar)'); |
| test_valid_selector(':not(:not(foo))'); |
| test_valid_selector(':not(.a .b)'); |
| test_valid_selector(':not(.a + .b)'); |
| test_valid_selector(':not(.a .b ~ c)'); |
| test_valid_selector(':not(span.a, div.b)'); |
| test_valid_selector(':not(.a .b ~ c, .d .e)'); |
| test_valid_selector(':not(:host)'); |
| test_valid_selector(':not(:host(.a))'); |
| test_valid_selector(':host(:not(.a))'); |
| test_valid_selector(':not(:host(:not(.a)))'); |
| test_valid_selector(':not([disabled][selected])', ':not([disabled][selected])'); |
| test_valid_selector(':not([disabled],[selected])', ':not([disabled], [selected])'); |
| |
| test_invalid_selector(':not()'); |
| test_invalid_selector(':not(:not())'); |
| test_invalid_selector(':not(::before)'); |
| test_invalid_selector(':not(:unknownpseudo)'); |
| test_invalid_selector(':not(.a, :unknownpseudo)'); |
| test_invalid_selector(':not(:unknownpseudo, .a)'); |
| test_invalid_selector(':host(:not(.a .b))'); |
| </script> |