host-part-001.html (1327B)
1 <!doctype html> 2 <title>CSS Shadow Parts - :host::part()</title> 3 <link rel="author" title="Mozilla" href="https://mozilla.org"> 4 <link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> 5 <link rel="help" href="https://drafts.csswg.org/css-shadow-parts/#part"> 6 <link rel="help" href="https://drafts.csswg.org/css-scoping/#host-selector"> 7 <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1624968"> 8 <link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=980506"> 9 <script src="/resources/testharness.js"></script> 10 <script src="/resources/testharnessreport.js"></script> 11 <div id="host"></div> 12 <script> 13 test(function() { 14 let host = document.getElementById("host"); 15 host.attachShadow({ mode: "open" }).innerHTML = ` 16 <style> 17 :host::part(mypart) { 18 color: lime; 19 } 20 :host(.tweak)::part(mypart) { 21 color: blue; 22 } 23 </style> 24 <div part="mypart"></div> 25 `; 26 27 let part = host.shadowRoot.querySelector("[part]"); 28 29 assert_equals( 30 window.getComputedStyle(part).color, 31 "rgb(0, 255, 0)", 32 ":host::part() works", 33 ); 34 35 host.classList.add("tweak"); 36 37 assert_equals( 38 window.getComputedStyle(part).color, 39 "rgb(0, 0, 255)", 40 ":host::part() invalidation works properly", 41 ); 42 }, ":host::part works"); 43 </script>