Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 97 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /css/css-values/line-break-ch-unit.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<title>CSS Values and Units Test: Lines of the ch unit can fit the specified number of characters</title>
<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>