| <!DOCTYPE html> | 
 | <title>CSS Anchor Positioning: position-area positioning inside grid</title> | 
 | <link rel="help" href="https://drafts.csswg.org/css-anchor-position/#position-area"> | 
 | <script src="/resources/testharness.js"></script> | 
 | <script src="/resources/testharnessreport.js"></script> | 
 | <!-- | 
 |     Grid: | 
 |  | 
 |           100      100      100      100 | 
 |       +--------+--------+--------+--------+ | 
 |       |        |        |        |        | | 
 |   100 |        |        |        |        | | 
 |       |        |        |        |        | | 
 |       +--------+--------+--------+--------+ | 
 |       |        |        |XXXXXXXX|XXXXXXXX| | 
 |   100 |        |        |XXXXXXXX|XXXXXXXX| | 
 |       |        |        |XXXXXXXX|XXXXXXXX| | 
 |       +--------+--------+--------+--------+ | 
 |       |        |        |XXXXXXXX|XXXXXXXX| | 
 |   100 |        |        |XXXXXXXX|XXXXXXXX| | 
 |       |        |        |XXXXXXXX|XXXXXXXX| | 
 |       +--------+--------+--------+--------+ | 
 |       |        |        |        |        | | 
 |   100 |        |        |        |        | | 
 |       |        |        |        |        | | 
 |       +--------+--------+--------+--------+ | 
 |  | 
 |  | 
 |     Inset regions: | 
 |  | 
 |           100        150           150 | 
 |       +--------+-------------+------------+ | 
 |       |        |             |            | | 
 |       |        |             |            | | 
 |   150 |        |             |            | | 
 |       |        |             |            | | 
 |       |        |             |            | | 
 |       +--------+-------------+------------+ | 
 |       |        |             |            | | 
 |    75 |        |             |            | | 
 |       |        |             |            | | 
 |       +--------+-------------+------------+ | 
 |       |        |             |            | | 
 |       |        |             |            | | 
 |   175 |        |             |            | | 
 |       |        |             |            | | 
 |       |        |             |            | | 
 |       +--------+-------------+------------+ | 
 |  | 
 |   --> | 
 |  | 
 | <style> | 
 |   #container { | 
 |     display: grid; | 
 |     grid: 1fr 1fr 1fr 1fr / 1fr 1fr 1fr 1fr; | 
 |     position: relative; | 
 |     width: 400px; | 
 |     height: 400px; | 
 |     outline: 1px solid; | 
 |   } | 
 |  | 
 |   #anchor { | 
 |     position: absolute; | 
 |     left: 100px; | 
 |     top: 150px; | 
 |     width: 150px; | 
 |     height: 75px; | 
 |     anchor-name: --anchor; | 
 |     background: blue; | 
 |   } | 
 |  | 
 |   #anchored { | 
 |     grid-row-start: 2; | 
 |     grid-row-end: span 2; | 
 |     grid-column-start: 3; | 
 |     grid-column-end: auto; | 
 |     position: absolute; | 
 |     align-self: stretch; | 
 |     justify-self: stretch; | 
 |     position-anchor: --anchor; | 
 |     border: solid orange; | 
 |   } | 
 | </style> | 
 |  | 
 | <div id="container"> | 
 |   <div id="anchor"></div> | 
 |   <div id="anchored"></div> | 
 | </div> | 
 | <script> | 
 |   function test_position_area(position_area, insets, expected_offsets) { | 
 |     anchored.style.positionArea = position_area; | 
 |     for (const [prop, value] of Object.entries(insets)) { | 
 |       anchored.style[prop] = value; | 
 |     } | 
 |  | 
 |     test(() => { | 
 |       assert_equals(anchored.offsetLeft, expected_offsets.left, "Check expected offsetLeft"); | 
 |       assert_equals(anchored.offsetTop, expected_offsets.top, "Check expected offsetTop"); | 
 |       assert_equals(anchored.offsetWidth, expected_offsets.width, "Check expected offsetWidth"); | 
 |       assert_equals(anchored.offsetHeight, expected_offsets.height, "Check expected offsetHeight"); | 
 |     }, "Offsets for position-area: " + position_area + " and insets: " + JSON.stringify(insets)); | 
 |   } | 
 |  | 
 |   test_position_area("span-bottom span-left", {left:"auto", right:"auto", top:"auto", bottom:"auto"}, | 
 |                   {left:100, top:150, width:150, height:150}); | 
 |  | 
 |   test_position_area("span-bottom span-left", {left:"10px", right:"10px", top:"10px", bottom:"10px"}, | 
 |                   {left:110, top:160, width:130, height:130}); | 
 | </script> |