| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Selectors Level 4: query using :is()</title> |
| <link rel="help" href="https://drafts.csswg.org/selectors/#matches"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/css/support/query-testcommon.js"></script> |
| </head> |
| <body> |
| <div id="a1" class="a"> |
| <div class="b" id="b1"></div> |
| <div class="c" id="c1"></div> |
| <div class="c" id="d"></div> |
| <div class="e" id="e1"></div> |
| <div class="f" id="f1"></div> |
| <div class="g"> |
| <div class="b" id="b2"> |
| <div class="b" id="b3"></div> |
| </div> |
| </div> |
| <div class="h" id="h1"></div> |
| </div> |
| <div class="c" id="c2"> |
| <div id="a2" class="a"></div> |
| <div class="e" id="e2"></div> |
| </div> |
| <script> |
| 'use strict'; |
| |
| // Simple selector arguments are supported by :is |
| test_query_selector(document, '.a :is(.b, .c)', |
| ['b1', 'c1', 'd', 'b2', 'b3']); |
| |
| // Compound selector arguments are supported by :is |
| test_query_selector(document, '.a :is(.c#d, .e)', |
| ['d', 'e1']); |
| |
| // Complex selector arguments are supported by :is |
| test_query_selector(document, '.a :is(.e+.f, .g>.b, .h)', |
| ['f1', 'b2', 'h1']); |
| |
| // Nested selector arguments are supported by :is |
| test_query_selector(document, '.a+:is(.b+.f, :is(.c>.e, .g))', |
| 'e2'); |
| |
| // Nested :where selector arguments are supported by :is |
| test_query_selector(document, '.a :is(:where(:where(.b ~ .c)))', |
| ['c1', 'd']); |
| |
| // Nested :not selector arguments are supported by :is |
| test_query_selector(document, '.b + :is(.c + .c + .c, .b + .c:not(span), .b + .c + .e) ~ .h', |
| ['h1']); |
| </script> |
| </body> |
| </html> |