align-content-block-006.html (10218B)
1 <!DOCTYPE html> 2 <html> 3 <title>CSS Box Alignment: align-content container change to large block container with floats</title> 4 <link rel="help" href="https://www.w3.org/TR/css-align-3/#align-block"> 5 <link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <script src="/resources/check-layout-th.js"></script> 9 10 <style title="Needed for automation; delete to review/debug"> 11 @import "/fonts/ahem.css"; 12 html { font: 10px/1 Ahem; max-width: 800px; } 13 .label { display: none; } 14 #manual { display: none; } 15 </style> 16 17 <style id="initial"> 18 .test { height: 1em !important; } 19 </style> 20 <script> 21 function doTest() 22 { 23 document.body.offsetHeight; // trigger layout 24 document.getElementById('initial').disabled = true; 25 checkLayout('.test'); 26 } 27 window.onload = () => { 28 requestAnimationFrame(() => { 29 requestAnimationFrame(doTest); 30 }); 31 }; 32 window.addEventListener("click", () => { document.getElementById('manual').style.display = "inline"; }); 33 </script> 34 35 <style> 36 html, body { margin: 0; padding: 0; } 37 38 .test { height: 5em; margin: 0.5em 1em; 39 /* show bounds of test box without interfering with margin-collapsing */ 40 background: black; padding-right: 2px; } 41 /* ensure float is contained */ 42 .float { float: right; background: orange; height: 2em } 43 /* ensure margin is contained */ 44 .in-flow { margin-top: 1em; background: orange } 45 /* ensure relpos is ignored */ 46 .relpos { position: relative; top: -1.5em; } 47 /* ensure abspos static position follows alignment */ 48 .wrapper { position: relative; } 49 .abspos { position: absolute; right: 0; margin-top: -1.5em; } 50 /* ensure overflow is not counted */ 51 .overflow { height: 0; } 52 53 /* cram into 800x600 */ 54 html { max-height: 600px; columns: 3 } 55 .wrapper { break-inside: avoid; border: solid 2px gray; } 56 57 /* readability */ 58 .test > * { color: #8888; } 59 .label { color: black; font-weight: bold; } 60 </style> 61 62 <!-- 63 Results should be same as align-content-block-004.html. 64 --> 65 66 <body> 67 68 <div class="wrapper"> 69 <div class="test" style="align-content: start" title="start"> 70 <div class="float" data-offset-y="5">FLT</div> 71 <div class="in-flow" data-offset-y="15"></div> 72 <div class="in-flow"> 73 <div class="float" data-offset-y="15">FLT</div> 74 <span class="label">START</span> 75 <span class="abspos">ABS</span> 76 <span class="relpos">REL</span> 77 <div class="overflow">OVERFLOW</div> 78 </div> 79 </div> 80 </div> 81 <div class="wrapper"> 82 <div class="test" style="align-content: center" title="center"> 83 <div class="float" data-offset-y="15">FLT</div> 84 <div class="in-flow" data-offset-y="25"></div> 85 <div class="in-flow"> 86 <div class="float" data-offset-y="25">FLT</div> 87 <span class="label">CENTER</span> 88 <span class="abspos">ABS</span> 89 <span class="relpos">REL</span> 90 <div class="overflow">OVERFLOW</div> 91 </div> 92 </div> 93 </div> 94 <div class="wrapper"> 95 <div class="test" style="align-content: end" title="end"> 96 <div class="float" data-offset-y="25">FLT</div> 97 <div class="in-flow" data-offset-y="35"></div> 98 <div class="in-flow"> 99 <div class="float" data-offset-y="35">FLT</div> 100 <span class="label">END</span> 101 <span class="abspos">ABS</span> 102 <span class="relpos">REL</span> 103 <div class="overflow">OVERFLOW</div> 104 </div> 105 </div> 106 </div> 107 <div class="wrapper"> 108 <div class="test" style="align-content: baseline" title="baseline"> 109 <div class="float" data-offset-y="5">FLT</div> 110 <div class="in-flow" data-offset-y="15"></div> 111 <div class="in-flow"> 112 <div class="float" data-offset-y="15">FLT</div> 113 <span class="label">BASELINE</span> 114 <span class="abspos">ABS</span> 115 <span class="relpos">REL</span> 116 <div class="overflow">OVERFLOW</div> 117 </div> 118 </div> 119 </div> 120 <div class="wrapper"> 121 <div class="test" style="align-content: last baseline" title="last baseline"> 122 <div class="float" data-offset-y="25">FLT</div> 123 <div class="in-flow" data-offset-y="35"></div> 124 <div class="in-flow"> 125 <div class="float" data-offset-y="35">FLT</div> 126 <span class="label">LAST BASELINE</span> 127 <span class="abspos">ABS</span> 128 <span class="relpos">REL</span> 129 <div class="overflow">OVERFLOW</div> 130 </div> 131 </div> 132 </div> 133 <div class="wrapper"> 134 <div class="test" style="align-content: flex-start" title="flex-start"> 135 <div class="float" data-offset-y="5">FLT</div> 136 <div class="in-flow" data-offset-y="15"></div> 137 <div class="in-flow"> 138 <div class="float" data-offset-y="15">FLT</div> 139 <span class="label">FLEX-START</span> 140 <span class="abspos">ABS</span> 141 <span class="relpos">REL</span> 142 <div class="overflow">OVERFLOW</div> 143 </div> 144 </div> 145 </div> 146 <div class="wrapper"> 147 <div class="test" style="align-content: flex-end" title="flex-end"> 148 <div class="float" data-offset-y="25">FLT</div> 149 <div class="in-flow" data-offset-y="35"></div> 150 <div class="in-flow"> 151 <div class="float" data-offset-y="35">FLT</div> 152 <span class="label">FLEX-END</span> 153 <span class="abspos">ABS</span> 154 <span class="relpos">REL</span> 155 <div class="overflow">OVERFLOW</div> 156 </div> 157 </div> 158 </div> 159 <div class="wrapper"> 160 <div class="test" style="align-content: unsafe start" title="unsafe start"> 161 <div class="float" data-offset-y="5">FLT</div> 162 <div class="in-flow" data-offset-y="15"></div> 163 <div class="in-flow"> 164 <div class="float" data-offset-y="15">FLT</div> 165 <span class="label">UNSAFE START</span> 166 <span class="abspos">ABS</span> 167 <span class="relpos">REL</span> 168 <div class="overflow">OVERFLOW</div> 169 </div> 170 </div> 171 </div> 172 <div class="wrapper"> 173 <div class="test" style="align-content: unsafe center" title="unsafe center"> 174 <div class="float" data-offset-y="15">FLT</div> 175 <div class="in-flow" data-offset-y="25"></div> 176 <div class="in-flow"> 177 <div class="float" data-offset-y="25">FLT</div> 178 <span class="label">UNSAFE CENTER</span> 179 <span class="abspos">ABS</span> 180 <span class="relpos">REL</span> 181 <div class="overflow">OVERFLOW</div> 182 </div> 183 </div> 184 </div> 185 <div class="wrapper"> 186 <div class="test" style="align-content: unsafe end" title="unsafe end"> 187 <div class="float" data-offset-y="25">FLT</div> 188 <div class="in-flow" data-offset-y="35"></div> 189 <div class="in-flow"> 190 <div class="float" data-offset-y="35">FLT</div> 191 <span class="label">UNSAFE END</span> 192 <span class="abspos">ABS</span> 193 <span class="relpos">REL</span> 194 <div class="overflow">OVERFLOW</div> 195 </div> 196 </div> 197 </div> 198 <div class="wrapper"> 199 <div class="test" style="align-content: safe start" title="safe start"> 200 <div class="float" data-offset-y="5">FLT</div> 201 <div class="in-flow" data-offset-y="15"></div> 202 <div class="in-flow"> 203 <div class="float" data-offset-y="15">FLT</div> 204 <span class="label">SAFE START</span> 205 <span class="abspos">ABS</span> 206 <span class="relpos">REL</span> 207 <div class="overflow">OVERFLOW</div> 208 </div> 209 </div> 210 </div> 211 <div class="wrapper"> 212 <div class="test" style="align-content: safe center" title="safe center"> 213 <div class="float"" data-offset-y="15">FLT</div> 214 <div class="in-flow"" data-offset-y="25"></div> 215 <div class="in-flow"> 216 <div class="float"" data-offset-y="25">FLT</div> 217 <span class="label">SAFE CENTER</span> 218 <span class="abspos">ABS</span> 219 <span class="relpos">REL</span> 220 <div class="overflow">OVERFLOW</div> 221 </div> 222 </div> 223 </div> 224 <div class="wrapper"> 225 <div class="test" style="align-content: safe end" title="safe end"> 226 <div class="float" data-offset-y="25">FLT</div> 227 <div class="in-flow" data-offset-y="35"></div> 228 <div class="in-flow"> 229 <div class="float" data-offset-y="35">FLT</div> 230 <span class="label">SAFE END</span> 231 <span class="abspos">ABS</span> 232 <span class="relpos">REL</span> 233 <div class="overflow">OVERFLOW</div> 234 </div> 235 </div> 236 </div> 237 <div class="wrapper"> 238 <div class="test" style="align-content: space-evenly" title="space-evenly"> 239 <div class="float" data-offset-y="15">FLT</div> 240 <div class="in-flow" data-offset-y="25"></div> 241 <div class="in-flow"> 242 <div class="float" data-offset-y="25">FLT</div> 243 <span class="label">SPACE-EVENLY</span> 244 <span class="abspos">ABS</span> 245 <span class="relpos">REL</span> 246 <div class="overflow">OVERFLOW</div> 247 </div> 248 </div> 249 </div> 250 <div class="wrapper"> 251 <div class="test" style="align-content: space-between" title="space-between"> 252 <div class="float" data-offset-y="5">FLT</div> 253 <div class="in-flow" data-offset-y="15"></div> 254 <div class="in-flow"> 255 <div class="float" data-offset-y="15">FLT</div> 256 <span class="label">SPACE-BETWEEN</span> 257 <span class="abspos">ABS</span> 258 <span class="relpos">REL</span> 259 <div class="overflow">OVERFLOW</div> 260 </div> 261 </div> 262 </div> 263 <div class="wrapper"> 264 <div class="test" style="align-content: space-around" title="space-around"> 265 <div class="float" data-offset-y="15">FLT</div> 266 <div class="in-flow" data-offset-y="25"></div> 267 <div class="in-flow"> 268 <div class="float" data-offset-y="25">FLT</div> 269 <span class="label">SPACE-AROUND</span> 270 <span class="abspos">ABS</span> 271 <span class="relpos">REL</span> 272 <div class="overflow">OVERFLOW</div> 273 </div> 274 </div> 275 </div> 276 <div class="wrapper"> 277 <div class="test" style="align-content: normal" title="normal"> 278 <div class="float" data-offset-y="10">FLT</div> 279 <div class="in-flow" data-offset-y="10"></div> 280 <div class="in-flow"> 281 <div class="float" data-offset-y="10">FLT</div> 282 <span class="label">NORMAL</span> 283 <span class="abspos">ABS</span> 284 <span class="relpos">REL</span> 285 <div class="overflow">OVERFLOW</div> 286 </div> 287 </div> 288 </div> 289 290 <p> 291 <button onclick="document.querySelector('style[title]').textContent = 'html { font-size: 12px; }'">Show Text</button> 292 </body>