-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[@container] Support container-relative units in media queries
Bug: 1223030 Change-Id: I6dd3035be682e35e8ec163315926b9a262f62e78 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3649669 Reviewed-by: Rune Lillesveen <futhark@chromium.org> Commit-Queue: Anders Hartvoll Ruud <andruud@chromium.org> Cr-Commit-Position: refs/heads/main@{#1004690}
- Loading branch information
1 parent
6a00f11
commit 01e527f
Showing
1 changed file
with
61 additions
and
0 deletions.
There are no files selected for viewing
61 changes: 61 additions & 0 deletions
61
css/css-contain/container-queries/container-units-media-queries.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
<!DOCTYPE html> | ||
<title>Container-relative units in @media</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> | ||
iframe { | ||
width: 200px; | ||
height: 100px; | ||
} | ||
</style> | ||
|
||
<iframe id=iframe></iframe> | ||
|
||
<script> | ||
setup(() => assert_implements_container_queries()); | ||
|
||
const doc = iframe.contentDocument; | ||
const win = iframe.contentWindow; | ||
|
||
function test_media_query(feature, result, description) { | ||
test((t) => { | ||
t.add_cleanup(() => { doc.body.innerHTML = ''; }) | ||
doc.body.innerHTML = ` | ||
<style> | ||
body { | ||
color: red; | ||
} | ||
@media (${feature}) { | ||
body { | ||
color: green; | ||
} | ||
} | ||
</style> | ||
`; | ||
assert_equals(win.getComputedStyle(doc.body).color, result); | ||
}, description); | ||
} | ||
|
||
function test_media_query_applies(feature) { | ||
test_media_query(feature, 'rgb(0, 128, 0)', `@media(${feature}) applies`); | ||
} | ||
|
||
function test_media_query_does_not_apply(feature) { | ||
test_media_query(feature, 'rgb(255, 0, 0)', `@media(${feature}) does not apply`); | ||
} | ||
|
||
// Container-relative units resolve against the "small viewport size" for | ||
// media queries. | ||
test_media_query_applies('width:100cqw'); | ||
test_media_query_applies('width:100cqi'); | ||
test_media_query_applies('width:100cqmax'); | ||
test_media_query_applies('height:100cqh'); | ||
test_media_query_applies('height:100cqb'); | ||
test_media_query_applies('height:100cqmin'); | ||
test_media_query_does_not_apply('width:90cqw'); | ||
test_media_query_does_not_apply('height:90cqh'); | ||
|
||
</script> |