grid-item-auto-min-size-clamp-003-ref.html (6711B)
1 <!DOCTYPE html> 2 <!-- 3 Any copyright is dedicated to the Public Domain. 4 http://creativecommons.org/publicdomain/zero/1.0/ 5 --> 6 <html><head> 7 <meta charset="utf-8"> 8 <title>Reference: Clamp 'automatic minimum size' to definite max-sizing for intrinsic ratio item</title> 9 <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1300369"> 10 <style type="text/css"> 11 body,html { color:black; background:white; font:16px/1 monospace; padding:0; margin:0; } 12 13 .grid { 14 display: grid; 15 grid-gap: 1px; 16 align-items: start; 17 justify-items: start; 18 float: left; 19 border: 1px dashed; 20 margin-right: 16px; 21 margin-bottom: 14px; 22 } 23 .sz { 24 width: 40px; 25 height: 40px; 26 } 27 28 .stretch .grid { 29 align-items: stretch; 30 justify-items: stretch; 31 } 32 33 img { 34 grid-area: 1 / 1; 35 border: 1px solid; 36 padding: 1px 3px 5px 7px; 37 margin: 3px 5px 7px 1px; 38 min-width: 0; 39 min-height: 0; 40 } 41 .span2 { 42 grid-area: 1 / 1 / span 2 / span 2; 43 } 44 45 x { 46 grid-area: 1 / 1; 47 min-width: 0; 48 min-height: 0; 49 align-self: stretch; 50 justify-self: stretch; 51 background: cyan; 52 } 53 54 br { 55 clear: both; 56 } 57 </style> 58 </head> 59 <body> 60 61 <div id="tests"> 62 <div class="grid a"><x></x><img src="support/solidblue-20x32.png"></div> 63 <div class="grid definite"><x></x><img src="support/solidblue-20x32.png"></div> 64 <div class="grid a2"><x></x><img class="span2" src="support/solidblue-20x32.png"></div> 65 <div class="grid definite"><x></x><img class="span2" src="support/solidblue-20x32.png"></div> 66 67 <div class="grid sz"><x></x><img src="support/solidblue-20x32.png"></div> 68 <div class="grid sz definite"><x></x><img src="support/solidblue-20x32.png"></div> 69 <div class="grid sz"><x></x><img class="span2" src="support/solidblue-20x32.png"></div> 70 <div class="grid sz definite"><x></x><img class="span2" src="support/solidblue-20x32.png"></div> 71 72 <br> 73 74 <div class="grid min"><x></x><img src="support/solidblue-20x32.png"></div> 75 <div class="grid min"><x></x><img class="span2" src="support/solidblue-20x32.png"></div> 76 <div class="grid sz min"><x></x><img src="support/solidblue-20x32.png"></div> 77 <div class="grid sz min"><x></x><img class="span2" src="support/solidblue-20x32.png"></div> 78 79 <div class="grid x1 max"><x></x><img src="support/solidblue-20x32.png"></div> 80 <div class="grid max"><x></x><img class="span2" src="support/solidblue-20x32.png"></div> 81 <div class="grid x1 sz max"><x></x><img src="support/solidblue-20x32.png"></div> 82 <div class="grid sz max"><x></x><img class="span2" src="support/solidblue-20x32.png"></div> 83 84 <br> 85 86 </div> 87 88 <script> 89 var tests = document.getElementById('tests'); 90 91 var n = tests.cloneNode(true); 92 var wrap = document.createElement('div'); 93 wrap.className = 'larger'; 94 wrap.appendChild(n); 95 document.body.appendChild(wrap); 96 97 var n = tests.cloneNode(true); 98 var wrap = document.createElement('div'); 99 wrap.className = 'stretch'; 100 wrap.appendChild(n); 101 document.body.appendChild(wrap); 102 103 var n = tests.cloneNode(true); 104 var wrap = document.createElement('div'); 105 wrap.className = 'stretch larger'; 106 wrap.appendChild(n); 107 document.body.appendChild(wrap); 108 109 </script> 110 111 112 <script> 113 var imgSizes = 114 [ 115 ['20px', '32px'], 116 ['20px', '32px'], 117 ['20px', '32px'], 118 ['20px', '32px'], 119 ['20px', '32px'], 120 ['20px', '32px'], 121 ['20px', '32px'], 122 ['20px', '32px'], 123 ['20px', '32px'], 124 ['20px', '32px'], 125 ['20px', '32px'], 126 ['20px', '32px'], 127 ['20px', '32px'], 128 ['20px', '32px'], 129 ['20px', '32px'], 130 ['20px', '32px'], 131 ['20px', '32px'], 132 ['20px', '32px'], 133 ['20px', '32px'], 134 ['20px', '32px'], 135 ['20px', '32px'], 136 ['20px', '32px'], 137 ['20px', '32px'], 138 ['20px', '32px'], 139 ['20px', '32px'], 140 ['20px', '32px'], 141 ['20px', '32px'], 142 ['20px', '32px'], 143 ['20px', '32px'], 144 ['20px', '32px'], 145 ['20px', '32px'], 146 ['20px', '32px'], 147 ['0px', '0px'], 148 ['0px', '0px'], 149 ['13px', '3px'], 150 ['13px', '3px'], 151 ['0px', '0px'], 152 ['0px', '0px'], 153 ['13px', '3px'], 154 ['13px', '3px'], 155 ['20px', '32px'], 156 ['20px', '32px'], 157 ['20px', '32px'], 158 ['20px', '32px'], 159 ['20px', '32px'], 160 ['20px', '32px'], 161 ['20px', '32px'], 162 ['20px', '32px'], 163 ['7px', '10px'], 164 ['7px', '10px'], 165 ['33px', '39px'], 166 ['33px', '39px'], 167 ['7px', '10px'], 168 ['7px', '10px'], 169 ['22px', '32px'], 170 ['33px', '39px'], 171 ['20px', '32px'], 172 ['33px', '39px'], 173 ['20px', '32px'], 174 ['22px', '32px'], 175 ['20px', '32px'], 176 ['33px', '39px'], 177 ['20px', '32px'], 178 ['22px', '32px'], 179 ]; 180 var imgs = document.querySelectorAll('img'); 181 for (var i = 0; i < imgs.length; ++i) { 182 imgs[i].style.width = imgSizes[i][0]; 183 imgs[i].style.height = imgSizes[i][1]; 184 } 185 186 187 var track_sizes = 188 [ 189 ['18px 10px / 18px 15px'], 190 ['10px 10px / 15px 15px'], 191 ['10px 10px / 15px 15px'], 192 ['10px 10px / 15px 15px'], 193 ['18px 10px / 18px 15px'], 194 ['10px 10px / 15px 15px'], 195 ['10px 10px / 15px 15px'], 196 ['10px 10px / 15px 15px'], 197 ['50px 10px / 38px 15px'], 198 ['24.5px 24.5px / 18.5px 18.5px'], 199 ['50px 0px / 38px 1px'], 200 ['24.5px 24.5px / 18.5px 18.5px'], 201 ['50px 10px / 38px 15px'], 202 ['24.5px 24.5px / 18.5px 18.5px'], 203 ['50px 0px / 38px 1px'], 204 ['24.5px 24.5px / 18.5px 18.5px'], 205 ['28px 28px / 25px 25px'], 206 ['28px 28px / 25px 25px'], 207 ['28px 28px / 25px 25px'], 208 ['28px 28px / 25px 25px'], 209 ['28px 11px / 25px 14px'], 210 ['28px 28px / 25px 25px'], 211 ['24.5px 24.5px / 19.5px 19.5px'], 212 ['28px 28px / 25px 25px'], 213 ['50px 28px / 38px 25px'], 214 ['28px 28px / 25px 25px'], 215 ['50px 0px / 38px 1px'], 216 ['24.5px 24.5px / 19.5px 19.5px'], 217 ['50px 28px / 38px 25px'], 218 ['28px 28px / 25px 25px'], 219 ['50px 0px / 38px 1px'], 220 ['24.5px 24.5px / 19.5px 19.5px'], 221 ['18px 10px / 18px 15px'], 222 ['10px 10px / 15px 15px'], 223 ['10px 10px / 15px 15px'], 224 ['10px 10px / 15px 15px'], 225 ['18px 10px / 18px 15px'], 226 ['10px 10px / 15px 15px'], 227 ['10px 10px / 15px 15px'], 228 ['10px 10px / 15px 15px'], 229 ['50px 10px / 38px 15px'], 230 ['24.5px 24.5px / 18.5px 18.5px'], 231 ['50px 0px / 38px 1px'], 232 ['24.5px 24.5px / 18.5px 18.5px'], 233 ['50px 10px / 38px 15px'], 234 ['24.5px 24.5px / 18.5px 18.5px'], 235 ['50px 0px / 38px 1px'], 236 ['24.5px 24.5px / 18.5px 18.5px'], 237 ['28px 28px / 25px 25px'], 238 ['28px 28px / 25px 25px'], 239 ['28px 28px / 25px 25px'], 240 ['28px 28px / 25px 25px'], 241 ['28px 11px / 25px 14px'], 242 ['28px 28px / 25px 25px'], 243 ['24.5px 24.5px / 19.5px 19.5px'], 244 ['28px 28px / 25px 25px'], 245 ['50px 28px / 38px 25px'], 246 ['28px 28px / 25px 25px'], 247 ['50px 0px / 38px 1px'], 248 ['24.5px 24.5px / 19.5px 19.5px'], 249 ['50px 28px / 38px 25px'], 250 ['28px 28px / 25px 25px'], 251 ['50px 0px / 38px 1px'], 252 ['24.5px 24.5px / 19.5px 19.5px'], 253 ]; 254 255 var grids = document.querySelectorAll('.grid'); 256 for (var i = 0; i < grids.length; ++i) { 257 grids[i].style.grid = track_sizes[i]; 258 grids[i].style.gridGap = "1px"; 259 } 260 261 262 </script> 263 264 </body></html>