| <!DOCTYPE html> | |
| <link rel="help" href="https://drafts.csswg.org/cssom-view/#extensions-to-the-htmlelement-interface"> | |
| <script src=/resources/testharness.js></script> | |
| <script src=/resources/testharnessreport.js></script> | |
| <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> | |
| <style> | |
| .container { | |
| position: relative; | |
| font: 20px/1 Ahem; | |
| width: 150px; | |
| height: 100px; | |
| padding: 2px 10px; | |
| border-width: 3px 6px; | |
| border-style: solid; | |
| box-sizing: border-box; | |
| } | |
| .target { background: grey; } | |
| .hl { writing-mode:horizontal-tb; } | |
| .vlr { writing-mode:vertical-lr; } | |
| </style> | |
| <div id=tests> | |
| <div class="container hl"> | |
| <span class="target">x</span> | |
| </div> | |
| <div class="container vlr"> | |
| <span class="target">x</span> | |
| </div> | |
| <div class="container hl"> | |
| <div class="target">x</div> | |
| </div> | |
| <div class="container vlr"> | |
| <div class="target">x</div> | |
| </div> | |
| </div> | |
| <script> | |
| setup({explicit_done: true}); | |
| onload = () => { | |
| // Clone the above tests for the following 'display' types: | |
| let display = ['inline-block', 'grid', 'inline-grid', 'flex', 'inline-flex', 'flow-root' ]; | |
| let tests = document.querySelector('#tests'); | |
| display.forEach((display) => { | |
| let t = tests.cloneNode(true); | |
| [...t.children].forEach((child) => { | |
| child.setAttribute("style", "display:"+display); | |
| }); | |
| document.body.appendChild(t); | |
| }); | |
| // Check that all of them return an offset relative the padding edge. | |
| var i = 0; | |
| document.querySelectorAll('.target').forEach((target) => { | |
| test(() => { | |
| assert_equals(target.offsetLeft, 10, 'offsetLeft'); | |
| assert_equals(target.offsetTop, 2, 'offsetTop'); | |
| }, 'container: ' + i); | |
| i++; | |
| }); | |
| done(); | |
| }; | |
| </script> |