| <!DOCTYPE html> |
| <title>CSS Values and Units Test: Lines of the ch unit can fit the specified number of characters</title> |
| <link rel="help" href="https://drafts.csswg.org/css-values-3/#font-relative-lengths"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <style> |
| div { |
| font-family: monospace; |
| font-size: 10px; |
| line-height: 1; |
| } |
| </style> |
| <body> |
| <div id=log></div> |
| <script> |
| (function() { |
| // Test that lines do not wrap for elements of the width of |
| // 'ch' unit that have the specified number of characters. |
| let container = document.body; |
| let should_fit = []; |
| for (let i = 3; i < 100; i++) { |
| let element = document.createElement('div'); |
| element.style.width = `${i}ch`; |
| element.textContent = `0 ${'0'.repeat(i - 2)}`; |
| container.appendChild(element); |
| should_fit.push(element); |
| } |
| |
| // When the number of characters is +1, it should wrap. |
| let should_wrap = []; |
| for (let i = 3; i < 100; i++) { |
| let element = document.createElement('div'); |
| element.style.width = `${i}ch`; |
| element.textContent = `0 ${'0'.repeat(i - 1)}`; |
| container.appendChild(element); |
| should_wrap.push(element); |
| } |
| |
| for (let element of should_fit) { |
| test(() => { |
| assert_approx_equals(element.offsetHeight, 10, 1); |
| }, `${element.style.width} should fit`); |
| } |
| |
| for (let element of should_wrap) { |
| test(() => { |
| assert_approx_equals(element.offsetHeight, 20, 1); |
| }, `${element.style.width} should wrap`); |
| } |
| })(); |
| </script> |
| </body> |