Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!doctype html>
<title>@container: originating element container for pseudo elements</title>
<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>