58 lines
1.3 KiB
HTML
58 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<title>Custom Functions: @container responds to changes</title>
|
|
<link rel="help" href="https://drafts.csswg.org/css-mixins-1/#conditional-rules">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<style>
|
|
#container {
|
|
container-type: size;
|
|
width: 50px;
|
|
height: 50px;
|
|
}
|
|
@function --f() {
|
|
result: A;
|
|
@container (width = 100px) {
|
|
result: B;
|
|
}
|
|
@container ((width >= 110px) and (width <= 140px)) {
|
|
result: C;
|
|
}
|
|
@container (width = 150px) {
|
|
result: D;
|
|
}
|
|
}
|
|
#target {
|
|
--actual: --f();
|
|
}
|
|
</style>
|
|
|
|
<div id=container>
|
|
<div id=target>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
test(() => {
|
|
let actualValue = () => getComputedStyle(target).getPropertyValue('--actual');
|
|
|
|
assert_equals(actualValue(), 'A', '--actual before resize');
|
|
|
|
// [<width of container>, <expected function result>]
|
|
let data = [
|
|
['100px', 'B'],
|
|
['105px', 'A'],
|
|
['110px', 'C'],
|
|
['125px', 'C'],
|
|
['140px', 'C'],
|
|
['145px', 'A'],
|
|
['150px', 'D'],
|
|
['155px', 'A'],
|
|
];
|
|
|
|
for (let d of data) {
|
|
container.style.width = d[0];
|
|
let expected = d[1];
|
|
assert_equals(actualValue(), expected, `--actual after resize to ${d[0]}`);
|
|
}
|
|
});
|
|
</script>
|