Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE html>
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script src="/resources/check-layout-th.js"></script>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<meta name="assert"
content="the stretch examples in the spec are rendered correctly">
<style>
main {
font: 20px/1 Ahem;
}
</style>
<p>This test asserts the behavior seemingly agreed upon through
is unlikely to be the final specified behavior, hence the test is marked
tentative.</p>
<main>
<!-- Example 9
[T]he outer height of the inner box will exactly match the height of the outer box (200px), but its inner height will be 20px less, to account for its margins.
-->
<div style="height: 200px; border: solid;">
<div style="height: stretch; margin: 10px;" data-expected-height="180"></div>
</div>
<!-- Example 9, second case
In the following case, the height of the inner box will exactly match the height of the outer box (200px).
-->
<div style="height: 200px; margin: 0;">
<div style="height: stretch; margin: 10px;" data-expected-height="200"></div>
</div>
<!-- Example 10
Similarly, width: stretch causes the box to fill its container, being 20px narrower than the width of "some more text" (due to the 10px margin)
-->
<div style="float: left; margin: 0; outline: solid;">
<div style="width: stretch; margin: 10px; background: skyblue;"
data-expected-width="260">
text
</div>
<span>some more text</span>
</div>
<div style="clear: both;"></div>
<!-- Example 11
On the other hand, in this example the container’s height is indefinite, which would cause a percentage height on the child to behave as auto, so height: stretch behaves as auto as well.
-->
<div style="height: auto; margin: 0; background: orange;">
lorem ipsum<br>
cats
<div style="height: stretch; margin: 10px; background: lime;"
data-expected-height="20">dogs</div>
</div>
</main>
<script>
document.fonts.ready.then(() => checkLayout("main > div > div"));
</script>