| <!DOCTYPE html> |
| <link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> |
| <link rel="help" href="https://developer.mozilla.org/en-US/docs/Web/API/Element/getClientRects"> |
| <link rel="help" href="https://drafts.csswg.org/css-multicol/"> |
| <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> |
| <style> |
| .multicol { |
| visibility: hidden; |
| position: absolute; |
| left: 100px; |
| top: 50px; |
| columns: 3; |
| column-gap: 10px; |
| inline-size: 290px; |
| font: 20px/1 Ahem; |
| orphans: 1; |
| widows: 1; |
| } |
| #horizontalTbLtr { |
| writing-mode: horizontal-tb; |
| } |
| #verticalLrLtr { |
| writing-mode: vertical-lr; |
| } |
| #verticalRlLtr { |
| writing-mode: vertical-rl; |
| } |
| #horizontalTbRtl { |
| writing-mode: horizontal-tb; |
| direction: rtl; |
| } |
| #verticalLrRtl { |
| writing-mode: vertical-lr; |
| direction: rtl; |
| } |
| #verticalRlRtl { |
| writing-mode: vertical-rl; |
| direction: rtl; |
| } |
| </style> |
| <div class="multicol" id="horizontalTbLtr"> |
| <div style="block-size:20px;"></div> |
| <span>XXXX XXXX XXXX XXXX</span> |
| </div> |
| <div class="multicol" id="verticalLrLtr"> |
| <div style="block-size:20px;"></div> |
| <span>XXXX XXXX XXXX XXXX</span> |
| </div> |
| <div class="multicol" id="verticalRlLtr"> |
| <div style="block-size:20px;"></div> |
| <span>XXXX XXXX XXXX XXXX</span> |
| </div> |
| <div class="multicol" id="horizontalTbRtl" > |
| <div style="block-size:20px;"></div> |
| <span>XXXX XXXX XXXX XXXX</span> |
| </div> |
| <div class="multicol" id="verticalLrRtl"> |
| <div style="block-size:20px;"></div> |
| <span>XXXX XXXX XXXX XXXX</span> |
| </div> |
| <div class="multicol" id="verticalRlRtl"> |
| <div style="block-size:20px;"></div> |
| <span>XXXX XXXX XXXX XXXX</span> |
| </div> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| test(()=> { |
| var span = document.querySelector("#horizontalTbLtr span"); |
| var rects = span.getClientRects(); |
| assert_equals(rects.length, 4); |
| assert_equals(rects[0].left, 100); |
| assert_equals(rects[0].top, 70); |
| assert_equals(rects[1].left, 200); |
| assert_equals(rects[1].top, 50); |
| assert_equals(rects[2].left, 200); |
| assert_equals(rects[2].top, 70); |
| assert_equals(rects[3].left, 300); |
| assert_equals(rects[3].top, 50); |
| }, "horizontal-tb ltr"); |
| |
| test(()=> { |
| var span = document.querySelector("#verticalLrLtr span"); |
| var rects = span.getClientRects(); |
| assert_equals(rects.length, 4); |
| assert_equals(rects[0].left, 120); |
| assert_equals(rects[0].top, 50); |
| assert_equals(rects[1].left, 100); |
| assert_equals(rects[1].top, 150); |
| assert_equals(rects[2].left, 120); |
| assert_equals(rects[2].top, 150); |
| assert_equals(rects[3].left, 100); |
| assert_equals(rects[3].top, 250); |
| }, "vertical-lr ltr"); |
| |
| test(()=> { |
| var span = document.querySelector("#verticalRlLtr span"); |
| var rects = span.getClientRects(); |
| assert_equals(rects.length, 4); |
| assert_equals(rects[0].left, 100); |
| assert_equals(rects[0].top, 50); |
| assert_equals(rects[1].left, 120); |
| assert_equals(rects[1].top, 150); |
| assert_equals(rects[2].left, 100); |
| assert_equals(rects[2].top, 150); |
| assert_equals(rects[3].left, 120); |
| assert_equals(rects[3].top, 250); |
| }, "vertical-rl ltr"); |
| test(()=> { |
| var span = document.querySelector("#horizontalTbRtl span"); |
| var rects = span.getClientRects(); |
| assert_equals(rects.length, 4); |
| assert_equals(rects[0].left, 310); |
| assert_equals(rects[0].top, 70); |
| assert_equals(rects[1].left, 210); |
| assert_equals(rects[1].top, 50); |
| assert_equals(rects[2].left, 210); |
| assert_equals(rects[2].top, 70); |
| assert_equals(rects[3].left, 110); |
| assert_equals(rects[3].top, 50); |
| }, "horizontal-tb rtl"); |
| test(()=> { |
| var span = document.querySelector("#verticalLrRtl span"); |
| var rects = span.getClientRects(); |
| assert_equals(rects.length, 4); |
| assert_equals(rects[0].left, 120); |
| assert_equals(rects[0].top, 260); |
| assert_equals(rects[1].left, 100); |
| assert_equals(rects[1].top, 160); |
| assert_equals(rects[2].left, 120); |
| assert_equals(rects[2].top, 160); |
| assert_equals(rects[3].left, 100); |
| assert_equals(rects[3].top, 60); |
| }, "vertical-lr rtl"); |
| test(()=> { |
| var span = document.querySelector("#verticalRlRtl span"); |
| var rects = span.getClientRects(); |
| assert_equals(rects.length, 4); |
| assert_equals(rects[0].left, 100); |
| assert_equals(rects[0].top, 260); |
| assert_equals(rects[1].left, 120); |
| assert_equals(rects[1].top, 160); |
| assert_equals(rects[2].left, 100); |
| assert_equals(rects[2].top, 160); |
| assert_equals(rects[3].left, 120); |
| assert_equals(rects[3].top, 60); |
| }, "vertical-rl rtl"); |
| </script> |