diff options
Diffstat (limited to 'testing/web-platform/tests/css/css-contain/container-queries/container-units-animation.html')
-rw-r--r-- | testing/web-platform/tests/css/css-contain/container-queries/container-units-animation.html | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-contain/container-queries/container-units-animation.html b/testing/web-platform/tests/css/css-contain/container-queries/container-units-animation.html new file mode 100644 index 0000000000..cf1b9a8f34 --- /dev/null +++ b/testing/web-platform/tests/css/css-contain/container-queries/container-units-animation.html @@ -0,0 +1,70 @@ +<!doctype html> +<title>Container Relative Units: Animation</title> +<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="support/cq-testcommon.js"></script> +<style> + #container { + container-type: size; + width: 200px; + height: 200px; + } + + @keyframes anim_cqw { from { top: 20cqw; } to { top: 40cqw; } } + @keyframes anim_cqh { from { top: 20cqh; } to { top: 40cqh; } } + @keyframes anim_cqi { from { top: 20cqi; } to { top: 40cqi; } } + @keyframes anim_cqb { from { top: 20cqb; } to { top: 40cqb; } } + @keyframes anim_cqmin { from { top: 20cqmin; } to { top: 40cqmin; } } + @keyframes anim_cqmax { from { top: 20cqmax; } to { top: 40cqmax; } } + + #container > div { + animation-delay: -5s; + animation-play-state: paused; + animation-duration: 10s; + animation-timing-function: linear; + } + + #element_cqw { animation-name: anim_cqw; } + #element_cqh { animation-name: anim_cqh; } + #element_cqi { animation-name: anim_cqi; } + #element_cqb { animation-name: anim_cqb; } + #element_cqmin { animation-name: anim_cqmin; } + #element_cqmax { animation-name: anim_cqmax; } + +</style> +<div id=container> + <div id=element_cqw></div> + <div id=element_cqh></div> + <div id=element_cqi></div> + <div id=element_cqb></div> + <div id=element_cqmin></div> + <div id=element_cqmax></div> +</div> +<script> + setup(() => assert_implements_container_queries()); + + const units = ['cqw', 'cqh', 'cqi', 'cqb', 'cqmin', 'cqmax']; + + for (let unit of units) { + test(() => { + let element = document.getElementById(`element_${unit}`) + assert_equals(getComputedStyle(element).top, '60px'); + }, `Animation using ${unit} unit`); + + test(() => { + let element = document.getElementById(`element_${unit}`) + assert_equals(getComputedStyle(element).top, '60px'); + try { + container.style.width = '300px'; + container.style.height = '300px'; + assert_equals(getComputedStyle(element).top, '90px'); + } finally { + container.style = ''; + } + + assert_equals(getComputedStyle(element).top, '60px'); + }, `Animation using ${unit} unit responds to changing container size`); + } + +</script> |