Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 9 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /css/css-anchor-position/anchor-ident-function.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<title>CSS Anchor Positioning: The ident() function </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
<style>
#cb {
border: 1px solid black;
width: 100px;
height: 100px;
position: relative;
}
.anchor {
width: 15px;
height: 15px;
background-color: skyblue;
position: absolute;
top: 30px;
}
/* sibling-index() could make this nicer, but it's not universally
supported at the time of writing: */
.anchor:nth-child(1) { anchor-name: --a1; left: calc(20px * 1); }
.anchor:nth-child(2) { anchor-name: --a2; left: calc(20px * 2); }
.anchor:nth-child(3) { anchor-name: --a3; left: calc(20px * 3); }
#target {
width: 15px;
height: 15px;
background-color: tomato;
position: absolute;
position-anchor: --a1;
}
</style>
<div id=cb>
<div>
<div class=anchor></div>
<div class=anchor></div>
<div class=anchor></div>
</div>
<div id=target></div>
</div>
<script>
// Test the computed values of various anchor related properties:
let actual_ident = 'ident("--myident" calc(42 * sign(1em - 1px)))';
let expected_ident = '--myident42';
test_computed_value('anchor-name', actual_ident, expected_ident);
test_computed_value('anchor-name', `--tl, ${actual_ident}`,
`--tl, ${expected_ident}`);
test_computed_value('anchor-name', `${actual_ident}, ${actual_ident}`,
`${expected_ident}, ${expected_ident}`);
test_computed_value('anchor-scope', actual_ident, expected_ident);
test_computed_value('anchor-scope', `--tl, ${actual_ident}`,
`--tl, ${expected_ident}`);
test_computed_value('anchor-scope', `${actual_ident}, ${actual_ident}`,
`${expected_ident}, ${expected_ident}`);
test_computed_value('position-anchor', actual_ident, expected_ident);
// Test ident() usage within anchor functions:
test_computed_value('left', 'anchor(--a1 left)', '20px');
test_computed_value('left', 'anchor(--a2 left)', '40px');
test_computed_value('left', 'anchor(--a3 left)', '60px');
test_computed_value('left', 'calc(anchor(--a1 left)*4)', '80px');
test_computed_value('width', 'calc(anchor-size(--a1)*2)', '30px');
test_computed_value('width', 'anchor-size(--a1)', '15px');
</script>