Source code

Revision control

Other Tools

Test Info:

Any copyright is dedicated to the Public Domain.
<meta charset="utf-8">
<title>CSS Grid Test: stretching intrinsic size items with 'normal' and/or 'stretch' and min/max-size, with Automatic Minimum Size clamping</title>
<link rel="author" title="Mats Palmgren" href="">
<link rel="match" href="grid-item-intrinsic-ratio-normal-003-ref.html">
<style type="text/css">
* { vertical-align: bottom; }
.grid {
display: inline-grid;
border: 3px solid grey;
grid: minmax(auto, 32px) / minmax(auto, 4px);
.r { grid: minmax(auto, 4px) / minmax(auto, 32px); }
button {
border: 1px solid;
padding: 0;
margin: 0;
background: lightgrey;
.start {align-self:start; justify-self:start}
.na {align-self:normal; justify-self:start}
.sa {align-self:stretch; justify-self:start}
.an {align-self:start; justify-self:normal}
.as {align-self:start; justify-self:stretch}
.w20 { width: 20px }
.mw20 { min-width: 20px }
.mxw10 { max-width: 10px }
.mxw2 { max-width: 2px }
.mw0 { min-width: 0px }
.h20 { height: 20px }
.mh20 { min-height: 20px }
.mxh10 { max-height: 10px }
.mxh2 { max-height: 2px }
.mh0 { min-height: 0px }
<div class="grid r"><img></div>
<div class="grid r"><img class="start"></div>
<div class="grid r"><img class="sa"></div>
<div class="grid r"><img class="sa mxw10"></div>
<div class="grid r"><img class="na"></div>
<div class="grid r"><img class="na mxw2"></div>
<div class="grid r"><img class="mh20"></div>
<div class="grid r"><img class="mh20 mxw10"></div>
<div class="grid r"><img class="start mh20"></div>
<div class="grid r"><img class="start mh20 mxw10"></div>
<div class="grid r"><img class="sa mh20"></div>
<div class="grid r"><img class="sa mh20 mxw10"></div>
<div class="grid r"><img class="na mh20"></div>
<div class="grid r"><img class="na mh20 mxw10"></div>
<div class="grid r"><img class="mh0"></div>
<div class="grid r"><img class="mh0 mxw10"></div>
<div class="grid r"><img class="start mh0"></div>
<div class="grid r"><img class="start mh0 mxw10"></div>
<div class="grid r"><img class="sa mh0"></div>
<div class="grid r"><img class="sa mh0 mxw10"></div>
<div class="grid r"><img class="na mh0"></div>
<div class="grid r"><img class="na mh0 mxw2"></div>
<div class="grid"><img></div>
<div class="grid"><img class="mxw2"></div>
<div class="grid"><img class="start"></div>
<div class="grid"><img class="start mxw2"></div>
<div class="grid"><img class="sa"></div>
<div class="grid"><img class="sa mxw2"></div>
<div class="grid"><img class="na"></div>
<div class="grid"><img class="na mxw2"></div>
<div class="grid"><img class="mw20"></div>
<div class="grid"><img class="mw20 mxh10"></div>
<div class="grid"><img class="start mw20"></div>
<div class="grid"><img class="start mw20 mxh10"></div>
<div class="grid"><img class="sa mw20"></div>
<div class="grid"><img class="sa mw20 mxh10"></div>
<div class="grid"><img class="na mw20"></div>
<div class="grid"><img class="na mw20 mxh10"></div>
<div class="grid"><img class="mw0"></div>
<div class="grid"><img class="mw0 mxh10"></div>
<div class="grid"><img class="start mw0"></div>
<div class="grid"><img class="start mw0 mxh10"></div>
<div class="grid"><img class="sa mw0"></div>
<div class="grid"><img class="sa mw0 mxh10"></div>
<div class="grid"><img class="na mw0"></div>
<div class="grid"><img class="na mw0 mxh10"></div>
<div class="grid r"><img class="w20"></div>
<div class="grid r"><img class="w20 mxh10"></div>
<div class="grid r"><img class="start w20"></div>
<div class="grid r"><img class="start w20 mxh10"></div>
<div class="grid r"><img class="sa w20"></div>
<div class="grid r"><img class="sa w20 mxh2"></div>
<div class="grid r"><img class="na w20"></div>
<div class="grid r"><img class="na w20 mxh2"></div>
<div class="grid"><img class="start w20"></div>
<div class="grid"><img class="start w20 mxh10"></div>
<div class="grid"><img class="start w20"></div>
<div class="grid"><img class="start w20 mxh10"></div>
<div class="grid"><img class="sa w20"></div>
<div class="grid"><img class="sa w20 mxh10"></div>
<div class="grid"><img class="na w20"></div>
<div class="grid"><img class="na w20 mxh10"></div>
<div class="grid r"><img class="h20"></div>
<div class="grid r"><img class="h20 mxw10"></div>
<div class="grid r"><img class="start h20"></div>
<div class="grid r"><img class="start h20 mxw10"></div>
<div class="grid r"><img class="as h20"></div>
<div class="grid r"><img class="as h20 mxw10"></div>
<div class="grid r"><img class="an h20"></div>
<div class="grid r"><img class="an h20 mxw10"></div>
<div class="grid"><img class="h20"></div>
<div class="grid"><img class="h20 mxw2"></div>
<div class="grid"><img class="start h20"></div>
<div class="grid"><img class="start h20 mxw10"></div>
<div class="grid"><img class="as h20"></div>
<div class="grid"><img class="as h20 mxw2"></div>
<div class="grid"><img class="an h20"></div>
<div class="grid"><img class="an h20 mxw10"></div>
var imgs = document.querySelectorAll('img');
for (var i = 0; i < imgs.length; ++i) {
imgs[i].src = url;
<!-- For generating button size results in -ref file
var imgs = document.querySelectorAll('img');
var s = ' [\n';
for (var i = 0; i < imgs.length; ++i) {
s += " ['"+ imgs[i].width + "px', '" + imgs[i].height + "px'],\n";
s += ']';