contain-size-grid-004.html (9795B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>CSS Containment Test: Size containment on grid containers with percentages</title> 4 <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com"> 5 <link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size"> 6 <meta name="assert" content="Checks that grid containers with size containment and their grid items are sized correctly when the track sizing functions contain percentages."> 7 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 8 <style> 9 .grid { 10 display: grid; 11 contain: size; 12 font: 75px/1 Ahem; 13 } 14 .min-content { 15 height: min-content; 16 width: min-content; 17 } 18 .max-content { 19 height: max-content; 20 width: max-content; 21 } 22 .fixed { 23 height: 100px; 24 width: 100px; 25 } 26 .percent { 27 grid: 50% / 200%; 28 } 29 .calc { 30 grid: calc(100px + 50%) / calc(100px + 200%); 31 } 32 .minmax-percent-fixed { 33 grid: minmax(50%, 100px) / minmax(200%, 100px); 34 } 35 .minmax-fixed-percent { 36 grid: minmax(100px, 50%) / minmax(100px, 200%); 37 } 38 .minmax-percent-flex { 39 grid: minmax(50%, 1fr) / minmax(200%, 1fr); 40 } 41 .minmax-percent-intrinsic { 42 grid: minmax(50%, min-content) / minmax(200%, min-content); 43 } 44 .minmax-intrinsic-percent { 45 grid: minmax(min-content, 50%) / minmax(min-content, 200%); 46 } 47 .fit-content { 48 grid: fit-content(50%) / fit-content(200%); 49 } 50 </style> 51 <script src="/resources/testharness.js"></script> 52 <script src="/resources/testharnessreport.js"></script> 53 <script src="/resources/check-layout-th.js"></script> 54 <body onload="checkLayout('.grid')"> 55 56 <div id="log"></div> 57 58 <div class="grid percent min-content" data-expected-height="0" data-expected-width="0"> 59 <div data-expected-height="0" data-expected-width="0"></div> 60 </div> 61 <div class="grid percent min-content" data-expected-height="0" data-expected-width="0"> 62 <div data-expected-height="0" data-expected-width="0">XXXX</div> 63 </div> 64 <div class="grid percent max-content" data-expected-height="0" data-expected-width="0"> 65 <div data-expected-height="0" data-expected-width="0"></div> 66 </div> 67 <div class="grid percent max-content" data-expected-height="0" data-expected-width="0"> 68 <div data-expected-height="0" data-expected-width="0">XXXX</div> 69 </div> 70 <div class="grid percent fixed" data-expected-height="100" data-expected-width="100"> 71 <div data-expected-height="50" data-expected-width="200"></div> 72 </div> 73 <div class="grid percent fixed" data-expected-height="100" data-expected-width="100"> 74 <div data-expected-height="50" data-expected-width="200">XXXX</div> 75 </div> 76 77 <div class="grid calc min-content" data-expected-height="0" data-expected-width="0"> 78 <div data-expected-height="100" data-expected-width="100"></div> 79 </div> 80 <div class="grid calc min-content" data-expected-height="0" data-expected-width="0"> 81 <div data-expected-height="100" data-expected-width="100">XXXX</div> 82 </div> 83 <div class="grid calc max-content" data-expected-height="0" data-expected-width="0"> 84 <div data-expected-height="100" data-expected-width="100"></div> 85 </div> 86 <div class="grid calc max-content" data-expected-height="0" data-expected-width="0"> 87 <div data-expected-height="100" data-expected-width="100">XXXX</div> 88 </div> 89 <div class="grid calc fixed" data-expected-height="100" data-expected-width="100"> 90 <div data-expected-height="150" data-expected-width="300"></div> 91 </div> 92 <div class="grid calc fixed" data-expected-height="100" data-expected-width="100"> 93 <div data-expected-height="150" data-expected-width="300">XXXX</div> 94 </div> 95 96 <div class="grid minmax-percent-fixed min-content" data-expected-height="100" data-expected-width="0"> 97 <div data-expected-height="100" data-expected-width="0"></div> 98 </div> 99 <div class="grid minmax-percent-fixed min-content" data-expected-height="100" data-expected-width="0"> 100 <div data-expected-height="100" data-expected-width="0">XXXX</div> 101 </div> 102 <div class="grid minmax-percent-fixed max-content" data-expected-height="100" data-expected-width="100"> 103 <div data-expected-height="100" data-expected-width="200"></div> 104 </div> 105 <div class="grid minmax-percent-fixed max-content" data-expected-height="100" data-expected-width="100"> 106 <div data-expected-height="100" data-expected-width="200">XXXX</div> 107 </div> 108 <div class="grid minmax-percent-fixed fixed" data-expected-height="100" data-expected-width="100"> 109 <div data-expected-height="100" data-expected-width="200"></div> 110 </div> 111 <div class="grid minmax-percent-fixed fixed" data-expected-height="100" data-expected-width="100"> 112 <div data-expected-height="100" data-expected-width="200">XXXX</div> 113 </div> 114 115 <div class="grid minmax-fixed-percent min-content" data-expected-height="100" data-expected-width="100"> 116 <div data-expected-height="100" data-expected-width="100"></div> 117 </div> 118 <div class="grid minmax-fixed-percent min-content" data-expected-height="100" data-expected-width="100"> 119 <div data-expected-height="100" data-expected-width="100">XXXX</div> 120 </div> 121 <div class="grid minmax-fixed-percent max-content" data-expected-height="100" data-expected-width="100"> 122 <div data-expected-height="100" data-expected-width="100"></div> 123 </div> 124 <div class="grid minmax-fixed-percent max-content" data-expected-height="100" data-expected-width="100"> 125 <div data-expected-height="100" data-expected-width="100">XXXX</div> 126 </div> 127 <div class="grid minmax-fixed-percent fixed" data-expected-height="100" data-expected-width="100"> 128 <div data-expected-height="100" data-expected-width="100"></div> 129 </div> 130 <div class="grid minmax-fixed-percent fixed" data-expected-height="100" data-expected-width="100"> 131 <div data-expected-height="100" data-expected-width="100">XXXX</div> 132 </div> 133 134 <div class="grid minmax-percent-flex min-content" data-expected-height="0" data-expected-width="0"> 135 <div data-expected-height="0" data-expected-width="0"></div> 136 </div> 137 <div class="grid minmax-percent-flex min-content" data-expected-height="0" data-expected-width="0"> 138 <div data-expected-height="0" data-expected-width="0">XXXX</div> 139 </div> 140 <div class="grid minmax-percent-flex max-content" data-expected-height="0" data-expected-width="0"> 141 <div data-expected-height="0" data-expected-width="0"></div> 142 </div> 143 <div class="grid minmax-percent-flex max-content" data-expected-height="0" data-expected-width="0"> 144 <div data-expected-height="0" data-expected-width="0">XXXX</div> 145 </div> 146 <div class="grid minmax-percent-flex fixed" data-expected-height="100" data-expected-width="100"> 147 <div data-expected-height="100" data-expected-width="200"></div> 148 </div> 149 <div class="grid minmax-percent-flex fixed" data-expected-height="100" data-expected-width="100"> 150 <div data-expected-height="100" data-expected-width="200">XXXX</div> 151 </div> 152 153 <div class="grid minmax-intrinsic-percent min-content" data-expected-height="0" data-expected-width="0"> 154 <div data-expected-height="0" data-expected-width="0"></div> 155 </div> 156 <div class="grid minmax-intrinsic-percent min-content" data-expected-height="0" data-expected-width="0"> 157 <div data-expected-height="75" data-expected-width="300">XXXX</div> 158 </div> 159 <div class="grid minmax-intrinsic-percent max-content" data-expected-height="0" data-expected-width="0"> 160 <div data-expected-height="0" data-expected-width="0"></div> 161 </div> 162 <div class="grid minmax-intrinsic-percent max-content" data-expected-height="0" data-expected-width="0"> 163 <div data-expected-height="75" data-expected-width="300">XXXX</div> 164 </div> 165 <div class="grid minmax-intrinsic-percent fixed" data-expected-height="100" data-expected-width="100"> 166 <div data-expected-height="50" data-expected-width="100"></div> 167 </div> 168 <div class="grid minmax-intrinsic-percent fixed" data-expected-height="100" data-expected-width="100"> 169 <div data-expected-height="75" data-expected-width="300">XXXX</div> 170 </div> 171 172 <div class="grid minmax-percent-intrinsic min-content" data-expected-height="0" data-expected-width="0"> 173 <div data-expected-height="0" data-expected-width="0"></div> 174 </div> 175 <div class="grid minmax-percent-intrinsic min-content" data-expected-height="0" data-expected-width="0"> 176 <div data-expected-height="0" data-expected-width="0">XXXX</div> 177 </div> 178 <div class="grid minmax-percent-intrinsic max-content" data-expected-height="0" data-expected-width="0"> 179 <div data-expected-height="0" data-expected-width="0"></div> 180 </div> 181 <div class="grid minmax-percent-intrinsic max-content" data-expected-height="0" data-expected-width="0"> 182 <div data-expected-height="0" data-expected-width="0">XXXX</div> 183 </div> 184 <div class="grid minmax-percent-intrinsic fixed" data-expected-height="100" data-expected-width="100"> 185 <div data-expected-height="50" data-expected-width="200"></div> 186 </div> 187 <div class="grid minmax-percent-intrinsic fixed" data-expected-height="100" data-expected-width="100"> 188 <div data-expected-height="75" data-expected-width="200">XXXX</div> 189 </div> 190 191 <div class="grid fit-content min-content" data-expected-height="0" data-expected-width="0"> 192 <div data-expected-height="0" data-expected-width="0"></div> 193 </div> 194 <div class="grid fit-content min-content" data-expected-height="0" data-expected-width="0"> 195 <div data-expected-height="75" data-expected-width="300">XXXX</div> 196 </div> 197 <div class="grid fit-content max-content" data-expected-height="0" data-expected-width="0"> 198 <div data-expected-height="0" data-expected-width="0"></div> 199 </div> 200 <div class="grid fit-content max-content" data-expected-height="0" data-expected-width="0"> 201 <div data-expected-height="75" data-expected-width="300">XXXX</div> 202 </div> 203 <div class="grid fit-content fixed" data-expected-height="100" data-expected-width="100"> 204 <div data-expected-height="0" data-expected-width="0"></div> 205 </div> 206 <div class="grid fit-content fixed" data-expected-height="100" data-expected-width="100"> 207 <div data-expected-height="75" data-expected-width="300">XXXX</div> 208 </div> 209 210 </body>