Status: FAIL | Duration: 49ms | Subtests: 0/1 | Open test on wpt.live | wpt.fyi
/css/css-cascade/scope-layer.html
<!DOCTYPE html> <title>@scope - inner @layer</title> <link rel="help" href="https://drafts.csswg.org/css-cascade-6/#scope-atrule"> <link rel="help" href="https://drafts.csswg.org/css-cascade-5/#layering"> <link rel="help" href="https://drafts.csswg.org/css-cascade-5/#scope-scope"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @scope (.a) { /* The theme layer wins over the base layer. Note that @layer statements are allowed here, but aren't affected by the enclosing @scope. */ @layer base, theme; @layer theme { :scope { z-index: 1; } .b { background-color: green; } } } @layer base { .a { z-index: 0; } .a .b { background-color: red; } } </style> <main> <div class=a> <div class=b> </div> </div> <div class=b></div> </main> <script> test(() => { let a = document.querySelector('main > .a'); let b = document.querySelector('main > .a > .b'); assert_equals(getComputedStyle(a).zIndex, '1'); assert_equals(getComputedStyle(b).backgroundColor, 'rgb(0, 128, 0)'); let out_of_scope_b = document.querySelector('main > .b'); assert_equals(getComputedStyle(out_of_scope_b).backgroundColor, 'rgba(0, 0, 0, 0)'); }, 'Style rules within @layer are scoped'); </script>