Source code

Revision control

Copy as Markdown

Other Tools

<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
-->
<html><head>
<meta charset="utf-8">
<title>Reference: 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="https://bugzilla.mozilla.org/show_bug.cgi?id=">
<style type="text/css">
* { vertical-align: top; }
.grid {
display: inline-grid;
border: 3px solid grey;
grid: 32px / 4px;
margin-right:20px;
align-items: start;
justify-items: start;
}
.r { grid: 4px / 32px; }
iframe {
border: 1px solid;
padding: 0;
margin: 0;
background: lightgrey;
}
.w20 { width: 20px; min-width: 0px; }
.w22 { width: 22px; }
.mw20 { min-width: 20px }
.mw0 { min-width: 0px }
.wi { width:32px }
.w4 { width:4px }
.w300 { width:302px }
.h20 { height: 20px; min-height: 0px; }
.h22 { height: 22px; min-height: 0px; }
.h32 { height: 32px; min-height: 0px; }
.mh20 { min-height: 20px }
.mh0 { min-height: 0px }
</style>
</head>
<body>
<div class="grid r wi"><iframe></iframe></div>
<div class="grid r wi"><iframe class="start"></iframe></div>
<div class="grid r wi"><iframe class="sa"></iframe></div>
<div class="grid r"><iframe class="sa mxw10"></iframe></div>
<div class="grid r wi"><iframe class="na"></iframe></div>
<div class="grid r"><iframe class="na mxw2"></iframe></div>
<pre><!--min-height:20px--></pre>
<div class="grid h22 r wi" style="margin-right:0"><iframe class="h20"></iframe></div>
<div class="grid h22 r"><iframe class="mh20 mxw10"></iframe></div>
<div class="grid h22 r wi"><iframe class="start mh20"></iframe></div>
<div class="grid h22 r"><iframe class="start mh20 mxw10"></iframe></div>
<div class="grid h22 r wi"><iframe class="sa mh20"></iframe></div>
<div class="grid h22 r"><iframe class="sa mh20 mxw10"></iframe></div>
<div class="grid h22 r wi"><iframe class="na mh20"></iframe></div>
<div class="grid h22 r"><iframe class="na mh20 mxw10"></iframe></div>
<pre><!--min-height:0--></pre>
<div class="grid r wi"><iframe class="mh0"></iframe></div>
<div class="grid r"><iframe class="mh0 mxw10"></iframe></div>
<div class="grid r wi"><iframe class="start mh0"></iframe></div>
<div class="grid r"><iframe class="start mh0 mxw10"></iframe></div>
<div class="grid r wi"><iframe class="sa mh0"></iframe></div>
<div class="grid r"><iframe class="sa mh0 mxw10"></iframe></div>
<div class="grid r wi"><iframe class="na mh0"></iframe></div>
<div class="grid r"><iframe class="na mh0 mxw2"></iframe></div>
<pre><!----></pre>
<div class="grid w4"><iframe></iframe></div>
<div class="grid w4"><iframe class="mxw2"></iframe></div>
<div class="grid w4"><iframe class="start"></iframe></div>
<div class="grid w4"><iframe class="start mxw2"></iframe></div>
<div class="grid w4"><iframe class="sa"></iframe></div>
<div class="grid w4"><iframe class="sa mxw2"></iframe></div>
<div class="grid w4"><iframe class="na"></iframe></div>
<div class="grid w4"><iframe class="na mxw2"></iframe></div>
<pre><!--min-width:20px--></pre>
<div class="grid w22"><iframe class="mw20"></iframe></div>
<div class="grid w22"><iframe class="mw20 mxh10"></iframe></div>
<div class="grid w22"><iframe class="start mw20"></iframe></div>
<div class="grid w22" style="margin-top:5px"><iframe class="start mw20 mxh10"></iframe></div>
<div class="grid w22" style="margin-top:10px"><iframe class="sa mw20"></iframe></div>
<div class="grid w22" style="margin-top:25px"><iframe class="sa mw20 mxh10"></iframe></div>
<div class="grid w22"><iframe class="na mw20"></iframe></div>
<div class="grid w22" style="margin-top:5px"><iframe class="na mw20 mxh10 mxw10"></iframe></div>
<pre><!--min-width:0--></pre>
<div class="grid w4"><iframe class="mw0"></iframe></div>
<div class="grid w4"><iframe class="mw0 mxh10"></iframe></div>
<div class="grid w4"><iframe class="start mw0"></iframe></div>
<div class="grid w4" style="margin-top:5px"><iframe class="start mw0 mxh10"></iframe></div>
<div class="grid w4" style="margin-top:10px"><iframe class="sa mw0"></iframe></div>
<div class="grid w4" style="margin-top:25px"><iframe class="sa mw0 mxh10 mxw10"></iframe></div>
<div class="grid w4"><iframe class="na mw0 mxw10"></iframe></div>
<div class="grid w4" style="margin-top:5px"><iframe class="na mw0 mxh10"></iframe></div>
<pre><!--width:20px--></pre>
<div class="grid r"><iframe class="w20"></iframe></div>
<div class="grid r"><iframe class="w20 mxh10"></iframe></div>
<div class="grid r"><iframe class="start w20"></iframe></div>
<div class="grid r"><iframe class="start w20 mxh10"></iframe></div>
<div class="grid r"><iframe class="sa w20"></iframe></div>
<div class="grid r"><iframe class="sa w20 mxh2"></iframe></div>
<div class="grid r"><iframe class="na w20"></iframe></div>
<div class="grid r"><iframe class="na w20 mxh2"></iframe></div>
<pre><!--width:20px--></pre>
<div class="grid w22"><iframe class="start w20"></iframe></div>
<div class="grid w22"><iframe class="start w20 mxh10"></iframe></div>
<div class="grid w22"><iframe class="start w20"></iframe></div>
<div class="grid w22"><iframe class="start w20 mxh10"></iframe></div>
<div class="grid w22"><iframe class="sa w20"></iframe></div>
<div class="grid w22"><iframe class="sa w20 mxh10"></iframe></div>
<div class="grid w22"><iframe class="na w20"></iframe></div>
<div class="grid w22"><iframe class="na w20 mxh10"></iframe></div>
<pre><!--height:20px--></pre>
<div class="grid h22 r wi"><iframe class="h20"></iframe></div>
<div class="grid h22 r"><iframe class="h20 mxw10"></iframe></div>
<div class="grid h22 r wi"><iframe class="start h20"></iframe></div>
<div class="grid h22 r"><iframe class="start h20 mxw10"></iframe></div>
<div class="grid h22 r wi"><iframe class="as h20"></iframe></div>
<div class="grid h22 r"><iframe class="as h20 mxw10"></iframe></div>
<div class="grid h22 r wi"><iframe class="an h20"></iframe></div>
<div class="grid h22 r"><iframe class="an h20 mxw10"></iframe></div>
<pre><!--height:20px--></pre>
<div class="grid h32 w4"><iframe class="h20"></iframe></div>
<div class="grid h32 w4"><iframe class="h20 mxw2"></iframe></div>
<div class="grid h32 w4"><iframe class="start h20"></iframe></div>
<div class="grid h32 w4"><iframe class="start h20 mxw10"></iframe></div>
<div class="grid h32 w4"><iframe class="as h20"></iframe></div>
<div class="grid h32 w4"><iframe class="as h20 mxw2"></iframe></div>
<div class="grid h32 w4"><iframe class="an h20"></iframe></div>
<div class="grid h32 w4"><iframe class="an h20 mxw10"></iframe></div>
<script>
var iframeSizes = [
['300px', '150px'],
['300px', '150px'],
['300px', '2px'],
['10px', '2px'],
['300px', '150px'],
['2px', '150px'],
['300px', '150px'],
['10px', '150px'],
['300px', '150px'],
['10px', '150px'],
['300px', '20px'],
['10px', '20px'],
['300px', '150px'],
['10px', '150px'],
['300px', '150px'],
['10px', '150px'],
['300px', '150px'],
['10px', '150px'],
['300px', '2px'],
['10px', '2px'],
['300px', '150px'],
['2px', '150px'],
['300px', '150px'],
['2px', '150px'],
['300px', '150px'],
['2px', '150px'],
['300px', '30px'],
['2px', '30px'],
['300px', '150px'],
['2px', '150px'],
['300px', '150px'],
['300px', '10px'],
['300px', '150px'],
['300px', '10px'],
['300px', '30px'],
['300px', '10px'],
['300px', '150px'],
['20px', '10px'],
['300px', '150px'],
['300px', '10px'],
['300px', '150px'],
['300px', '10px'],
['300px', '30px'],
['10px', '10px'],
['10px', '150px'],
['300px', '10px'],
['20px', '2px'],
['20px', '2px'],
['20px', '150px'],
['20px', '10px'],
['20px', '2px'],
['20px', '2px'],
['20px', '2px'],
['20px', '2px'],
['20px', '150px'],
['20px', '10px'],
['20px', '150px'],
['20px', '10px'],
['20px', '30px'],
['20px', '10px'],
['20px', '30px'],
['20px', '10px'],
['30px', '20px'],
['10px', '20px'],
['300px', '20px'],
['10px', '20px'],
['30px', '20px'],
['10px', '20px'],
['30px', '20px'],
['10px', '20px'],
['2px', '20px'],
['2px', '20px'],
['300px', '20px'],
['10px', '20px'],
['2px', '20px'],
['2px', '20px'],
['2px', '20px'],
['2px', '20px'],
];
var iframes = document.querySelectorAll('iframe');
for (var i = 0; i < iframes.length; ++i) {
var iframe = iframes[i];
iframe.style.width = iframeSizes[i][0];
iframe.style.height = iframeSizes[i][1];
}
</script>
</body>
</html>