<!doctype html> <title>@container: originating element container for pseudo elements</title> <link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> <style> #target { container-type: inline-size; } #target::before, #target::after, #target::marker, #target::first-line, #target::first-letter, #target::backdrop { color: red; } @container (width >= 300px) { #target::before, #target::after, #target::marker, #target::first-line, #target::first-letter, #target::backdrop { color: green; } } </style> <div id="outer" style="width: 200px"> <div id="target"></div> </div> <script> setup(() => assert_implements_container_queries()); const green = "rgb(0, 128, 0)"; const red = "rgb(255, 0, 0)"; const pseudo_elements = ["::before", "::after", "::marker", "::first-line", "::first-letter", "::backdrop"]; pseudo_elements.forEach((pseudo_element) => { test(() => { assert_equals(getComputedStyle(target, pseudo_element).color, red); }, `Initial color for ${pseudo_element}`); }); outer.style.width = "300px"; pseudo_elements.forEach((pseudo_element) => { test(() => { assert_equals(getComputedStyle(target, pseudo_element).color, green); }, `Color for ${pseudo_element} depending on container`); }); </script>