| <!DOCTYPE html> |
| <title>CSS Anchor Positioning: Pseudo elements as anchors</title> |
| <link rel="help" href="https://drafts.csswg.org/css-anchor-1/#position-anchor"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <style> |
| .cb { |
| position: relative; |
| width: 200px; |
| height: 200px; |
| } |
| #anchor1::before { |
| display: block; |
| width: 100px; |
| height: 100px; |
| content: ""; |
| anchor-name: --a1; |
| background: blue; |
| } |
| #anchor2::after { |
| display: block; |
| width: 100px; |
| height: 100px; |
| content: ""; |
| anchor-name: --a2; |
| background: pink; |
| } |
| .anchored { |
| position: absolute; |
| width: 100px; |
| height: 100px; |
| left: anchor(right); |
| top: anchor(bottom); |
| background: orange; |
| } |
| #anchored1 { position-anchor: --a1; } |
| #anchored2 { position-anchor: --a2; } |
| </style> |
| <div class="cb"> |
| <div id="anchor1"></div> |
| <div id="anchored1" class="anchored"></div> |
| </div> |
| <div class="cb"> |
| <div id="anchor2"></div> |
| <div id="anchored2" class="anchored"></div> |
| </div> |
| <script> |
| test(() => { |
| assert_equals(anchored1.offsetLeft, 100); |
| assert_equals(anchored1.offsetTop, 100); |
| }, "::before as anchor"); |
| test(() => { |
| assert_equals(anchored2.offsetLeft, 100); |
| assert_equals(anchored2.offsetTop, 100); |
| }, "::after as anchor"); |
| </script> |