| <!DOCTYPE html> | |
| <html> | |
| <title>The bounding client rect of an element should reflect offset-path</title> | |
| <link rel="help" href="https://drafts.csswg.org/motion/#offset-path-property"> | |
| <link rel="help" href="https://crbug.com/463409688"> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <style> | |
| body { | |
| margin: 0; | |
| } | |
| #blue { | |
| background: radial-gradient(lightblue, blue); | |
| width: 60px; | |
| height: 60px; | |
| offset-path: circle(100px at 150px 150px); | |
| position: relative; | |
| left: 100px; | |
| } | |
| #purple { | |
| background: radial-gradient(fuchsia, purple); | |
| width: 60px; | |
| height: 60px; | |
| offset-path: border-box; | |
| position: relative; | |
| left: 100px; | |
| } | |
| </style> | |
| <body> | |
| <div id="blue"></div> | |
| <div id="purple"></div> | |
| <div id="log"></div> | |
| <script> | |
| function check_rect(id, expected) { | |
| test(() => { | |
| const rect = document.getElementById(id).getBoundingClientRect(); | |
| for (const prop in expected) { | |
| assert_equals(rect[prop], expected[prop], `#${id} client rect.${prop}`); | |
| } | |
| }, `Bounding client rect for #${id}`); | |
| } | |
| check_rect('blue', { | |
| x: 220, | |
| y: 120, | |
| width: 60, | |
| height: 60 | |
| }); | |
| check_rect('purple', { | |
| x: -30, | |
| y: -30, | |
| width: 60, | |
| height: 60 | |
| }); | |
| </script> | |
| </body> | |
| </html> |