Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /css/css-grid/grid-items/grid-item-flex-container-001.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Grid Layout Test: Grid item which is also a flex container</title>
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
<meta name="assert" content="Checks that the grid is updated when the contents of the grid item flex container change their size dynamically.">
<style>
.grid {
display: grid;
width: 100px;
background: cyan;
}
.flex {
display: flex;
min-height: 0;
height: 100%;
}
.height200 {
height: 200px;
}
.height100 {
height: 100px;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<div id="log"></div>
<pre>grid-template-rows: minmax(auto, auto);</pre>
<div class="grid" style="grid-template-rows: minmax(auto, auto);" data-expected-height="100" >
<div class="flex">
<div>
<div class="height200"></div>
</div>
</div>
</div>
<pre>grid-template-rows: minmax(min-content, auto);</pre>
<div class="grid" style="grid-template-rows: minmax(min-content, auto);" data-expected-height="100">
<div class="flex">
<div>
<div class="height200"></div>
</div>
</div>
</div>
<pre>grid-template-rows: minmax(max-content, auto);</pre>
<div class="grid" style="grid-template-rows: minmax(max-content, auto);" data-expected-height="100">
<div class="flex">
<div>
<div class="height200"></div>
</div>
</div>
</div>
<pre>grid-template-rows: minmax(auto, min-content);</pre>
<div class="grid" style="grid-template-rows: minmax(auto, min-content);" data-expected-height="100">
<div class="flex">
<div>
<div class="height200"></div>
</div>
</div>
</div>
<pre>grid-template-rows: minmax(min-content, min-content);</pre>
<div class="grid" style="grid-template-rows: minmax(min-content, min-content);" data-expected-height="100">
<div class="flex">
<div>
<div class="height200"></div>
</div>
</div>
</div>
<pre>grid-template-rows: minmax(max-content, min-content);</pre>
<div class="grid" style="grid-template-rows: minmax(max-content, min-content);" data-expected-height="100">
<div class="flex">
<div>
<div class="height200"></div>
</div>
</div>
</div>
<pre>grid-template-rows: minmax(auto, max-content);</pre>
<div class="grid" style="grid-template-rows: minmax(auto, max-content);" data-expected-height="100">
<div class="flex">
<div>
<div class="height200"></div>
</div>
</div>
</div>
<pre>grid-template-rows: minmax(min-content, max-content);</pre>
<div class="grid" style="grid-template-rows: minmax(min-content, max-content);" data-expected-height="100">
<div class="flex">
<div>
<div class="height200"></div>
</div>
</div>
</div>
<pre>grid-template-rows: minmax(max-content, max-content);</pre>
<div class="grid" style="grid-template-rows: minmax(max-content, max-content);" data-expected-height="100">
<div class="flex">
<div>
<div class="height200"></div>
</div>
</div>
</div>
<script>
// Force layout
document.body.offsetLeft;
// Change content sizes
for (let el of document.querySelectorAll(".height200")) {
el.className = "height100";
}
// Check final layout
checkLayout('.grid');
</script>