wpt / css / css-flexbox / flex-wrap-column-grow.html

Status: PASS | Duration: 52ms | Subtests: 3/3 | Open test on wpt.live | wpt.fyi

Data from commit:
a50cb89 wpt: run reference-named files which are themselves tests (#836) (2026-09-03)

SubtestStatusMessage
Single flex-grow item fills multi-line column container heightPASS
flex-grow respects max-height on individual itemsPASS
flex-grow distributes space proportionallyPASS

/css/css-flexbox/flex-wrap-column-grow.html

<!DOCTYPE html>
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#flex-lines">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
.flex {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    font: 20px/1 Ahem;
}
</style>

<!-- Test 1: single grow item fills to container height -->
<div class="flex" style="max-height: 100px; width: 100px">
    <div id="t1" style="width: 50px; height: 50px; flex-grow: 1"></div>
    <div style="width: 50px; height: 100px"></div>
</div>

<!-- Test 2: max-height on item is respected -->
<div class="flex" style="max-height: 100px; width: 150px">
    <div id="t2a" style="width: 50px; height: 20px; flex-grow: 1; max-height: 40px"></div>
    <div id="t2b" style="width: 50px; height: 30px; flex-grow: 1"></div>
    <div style="width: 50px; height: 100px"></div>
</div>

<!-- Test 3: proportional grow -->
<div class="flex" style="max-height: 100px; width: 150px">
    <div id="t3a" style="width: 50px; height: 10px; flex-grow: 2"></div>
    <div id="t3b" style="width: 50px; height: 10px; flex-grow: 1"></div>
    <div style="width: 50px; height: 100px"></div>
</div>

<script>
test(function() {
    assert_equals(document.getElementById("t1").offsetHeight, 100,
        "Item should grow from 50px to 100px to fill the line");
}, "Single flex-grow item fills multi-line column container height");

test(function() {
    assert_equals(document.getElementById("t2a").offsetHeight, 40,
        "Item should grow but be clamped by max-height: 40px");
    assert_equals(document.getElementById("t2b").offsetHeight, 60,
        "Remaining space should go to the other grow item");
}, "flex-grow respects max-height on individual items");

test(function() {
    var a = document.getElementById("t3a").offsetHeight;
    var b = document.getElementById("t3b").offsetHeight;
    assert_equals(a + b, 100, "Items should fill 100px total");
    assert_greater_than(a, b, "Item with flex-grow: 2 should be taller");
}, "flex-grow distributes space proportionally");
</script>