wpt / css / css-sizing / stretch / block-height-002.html

Status: FAIL | Duration: 2ms | Subtests: 2/4 | Open test on wpt.live | wpt.fyi

Data from commit:
708eb61 WPT runner: support mismatch reftests and multiple rel=match links (#665) (2026-08-09)

SubtestStatusMessage
main > div > div 1FAILassert_equals: data-expected-height expected 180 got 0
main > div > div 2FAILassert_equals: data-expected-height expected 200 got 0
main > div > div 3PASS
main > div > div 4PASS

/css/css-sizing/stretch/block-height-002.html

<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#example-174ae518">
<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>These tests assert the behavior described at
  https://github.com/w3c/csswg-drafts/issues/11044#issuecomment-2599101601
</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>