repeat-auto-fill-001.html (18045B)
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>CSS Grid Test: repeat(auto-fill, line-names)</title> 9 <link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com"> 10 <link rel="help" href="https://drafts.csswg.org/css-grid-2/#subgrid-listing"> 11 <link rel="match" href="repeat-auto-fill-001-ref.html"> 12 <style> 13 html,body { 14 color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0; 15 } 16 17 .grid { 18 display: inline-grid; 19 grid-auto-columns: 15px; 20 border: 1px solid; 21 } 22 23 .subgrid { 24 display: grid; 25 grid-column: 3 / span 4; 26 grid-auto-rows: 8px; 27 background: grey; 28 } 29 30 .fill-0a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] [z] } /* [z] [z] [z] [z] [z] */ 31 .fill-0b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [x] [z] [z] [z] [z] */ 32 .fill-0c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [x] [z] [z] [z] */ 33 .fill-0d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [z] [z] */ 34 .fill-0e { grid-template-columns: subgrid [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [z] */ 35 .fill-0f { grid-template-columns: subgrid [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */ 36 .fill-0g { grid-template-columns: subgrid [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */ 37 .fill-0h { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */ 38 .fill-0i { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [x] */ 39 .fill-0j { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */ 40 .fill-0k { grid-template-columns: subgrid repeat(auto-fill, [y]) repeat(100, [z]) } /* [z] [z] [z] [z] [z] */ 41 .fill-0l { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) repeat(100, [z]) } /* [x] [z] [z] [z] [z] */ 42 .fill-0m { grid-template-columns: subgrid repeat(100, [x]) repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */ 43 44 .fill-1a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [y] [z] [z] [z] [z] */ 45 .fill-1b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [y] [z] [z] [z] */ 46 .fill-1c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [y] [z] [z] */ 47 .fill-1d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [y] [z] */ 48 .fill-1e { grid-template-columns: subgrid [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [y] */ 49 50 .fill-2a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] } /* [y] [y] [z] [z] [z] */ 51 .fill-2b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [y] [y] [z] [z] */ 52 .fill-2c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [y] [y] [z] */ 53 .fill-2d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [y] [y] */ 54 55 .fill-3a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] } /* [y] [y] [y] [z] [z] */ 56 .fill-3b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] } /* [x] [y] [y] [y] [z] */ 57 .fill-3c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [y] [y] [y] */ 58 59 .fill-4a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] } /* [y] [y] [y] [y] [z] */ 60 .fill-4b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) } /* [x] [y] [y] [y] [y] */ 61 62 .fill-5 { grid-template-columns: subgrid repeat(auto-fill, [y]) } /* [y] [y] [y] [y] [y] */ 63 64 .subgrid > :nth-child(2n) { background: black; } 65 .subgrid > :nth-child(2n+1) { background: pink; } 66 67 </style> 68 </head> 69 <body> 70 71 <div class="grid"><div class="subgrid fill-0a"> 72 <div style="grid-column:y 5"></div> 73 <div style="grid-column:y 4"></div> 74 <div style="grid-column:y 3"></div> 75 <div style="grid-column:y 2"></div> 76 <div style="grid-column:y 1"></div> 77 <div style="grid-column:y -1"></div> 78 <div style="grid-column:y -2"></div> 79 <div style="grid-column:y -3"></div> 80 <div style="grid-column:y -4"></div> 81 <div style="grid-column:y -5"></div> 82 </div></div> 83 84 <div class="grid"><div class="subgrid fill-0b"> 85 <div style="grid-column:y 5"></div> 86 <div style="grid-column:y 4"></div> 87 <div style="grid-column:y 3"></div> 88 <div style="grid-column:y 2"></div> 89 <div style="grid-column:y 1"></div> 90 <div style="grid-column:y -1"></div> 91 <div style="grid-column:y -2"></div> 92 <div style="grid-column:y -3"></div> 93 <div style="grid-column:y -4"></div> 94 <div style="grid-column:y -5"></div> 95 </div></div> 96 97 <div class="grid"><div class="subgrid fill-0c"> 98 <div style="grid-column:y 5"></div> 99 <div style="grid-column:y 4"></div> 100 <div style="grid-column:y 3"></div> 101 <div style="grid-column:y 2"></div> 102 <div style="grid-column:y 1"></div> 103 <div style="grid-column:y -1"></div> 104 <div style="grid-column:y -2"></div> 105 <div style="grid-column:y -3"></div> 106 <div style="grid-column:y -4"></div> 107 <div style="grid-column:y -5"></div> 108 </div></div> 109 110 <div class="grid"><div class="subgrid fill-0d"> 111 <div style="grid-column:y 5"></div> 112 <div style="grid-column:y 4"></div> 113 <div style="grid-column:y 3"></div> 114 <div style="grid-column:y 2"></div> 115 <div style="grid-column:y 1"></div> 116 <div style="grid-column:y -1"></div> 117 <div style="grid-column:y -2"></div> 118 <div style="grid-column:y -3"></div> 119 <div style="grid-column:y -4"></div> 120 <div style="grid-column:y -5"></div> 121 </div></div> 122 123 <div class="grid"><div class="subgrid fill-0e"> 124 <div style="grid-column:y 5"></div> 125 <div style="grid-column:y 4"></div> 126 <div style="grid-column:y 3"></div> 127 <div style="grid-column:y 2"></div> 128 <div style="grid-column:y 1"></div> 129 <div style="grid-column:y -1"></div> 130 <div style="grid-column:y -2"></div> 131 <div style="grid-column:y -3"></div> 132 <div style="grid-column:y -4"></div> 133 <div style="grid-column:y -5"></div> 134 </div></div> 135 136 <div class="grid"><div class="subgrid fill-0f"> 137 <div style="grid-column:y 5"></div> 138 <div style="grid-column:y 4"></div> 139 <div style="grid-column:y 3"></div> 140 <div style="grid-column:y 2"></div> 141 <div style="grid-column:y 1"></div> 142 <div style="grid-column:y -1"></div> 143 <div style="grid-column:y -2"></div> 144 <div style="grid-column:y -3"></div> 145 <div style="grid-column:y -4"></div> 146 <div style="grid-column:y -5"></div> 147 </div></div> 148 149 <div class="grid"><div class="subgrid fill-0g"> 150 <div style="grid-column:y 5"></div> 151 <div style="grid-column:y 4"></div> 152 <div style="grid-column:y 3"></div> 153 <div style="grid-column:y 2"></div> 154 <div style="grid-column:y 1"></div> 155 <div style="grid-column:y -1"></div> 156 <div style="grid-column:y -2"></div> 157 <div style="grid-column:y -3"></div> 158 <div style="grid-column:y -4"></div> 159 <div style="grid-column:y -5"></div> 160 </div></div> 161 162 <div class="grid"><div class="subgrid fill-0h"> 163 <div style="grid-column:y 5"></div> 164 <div style="grid-column:y 4"></div> 165 <div style="grid-column:y 3"></div> 166 <div style="grid-column:y 2"></div> 167 <div style="grid-column:y 1"></div> 168 <div style="grid-column:y -1"></div> 169 <div style="grid-column:y -2"></div> 170 <div style="grid-column:y -3"></div> 171 <div style="grid-column:y -4"></div> 172 <div style="grid-column:y -5"></div> 173 </div></div> 174 175 <div class="grid"><div class="subgrid fill-0i"> 176 <div style="grid-column:y 5"></div> 177 <div style="grid-column:y 4"></div> 178 <div style="grid-column:y 3"></div> 179 <div style="grid-column:y 2"></div> 180 <div style="grid-column:y 1"></div> 181 <div style="grid-column:y -1"></div> 182 <div style="grid-column:y -2"></div> 183 <div style="grid-column:y -3"></div> 184 <div style="grid-column:y -4"></div> 185 <div style="grid-column:y -5"></div> 186 </div></div> 187 188 <div class="grid"><div class="subgrid fill-0j"> 189 <div style="grid-column:y 5"></div> 190 <div style="grid-column:y 4"></div> 191 <div style="grid-column:y 3"></div> 192 <div style="grid-column:y 2"></div> 193 <div style="grid-column:y 1"></div> 194 <div style="grid-column:y -1"></div> 195 <div style="grid-column:y -2"></div> 196 <div style="grid-column:y -3"></div> 197 <div style="grid-column:y -4"></div> 198 <div style="grid-column:y -5"></div> 199 </div></div> 200 201 <div class="grid"><div class="subgrid fill-0k"> 202 <div style="grid-column:y 5"></div> 203 <div style="grid-column:y 4"></div> 204 <div style="grid-column:y 3"></div> 205 <div style="grid-column:y 2"></div> 206 <div style="grid-column:y 1"></div> 207 <div style="grid-column:y -1"></div> 208 <div style="grid-column:y -2"></div> 209 <div style="grid-column:y -3"></div> 210 <div style="grid-column:y -4"></div> 211 <div style="grid-column:y -5"></div> 212 </div></div> 213 214 <div class="grid"><div class="subgrid fill-0l"> 215 <div style="grid-column:y 5"></div> 216 <div style="grid-column:y 4"></div> 217 <div style="grid-column:y 3"></div> 218 <div style="grid-column:y 2"></div> 219 <div style="grid-column:y 1"></div> 220 <div style="grid-column:y -1"></div> 221 <div style="grid-column:y -2"></div> 222 <div style="grid-column:y -3"></div> 223 <div style="grid-column:y -4"></div> 224 <div style="grid-column:y -5"></div> 225 </div></div> 226 227 <div class="grid"><div class="subgrid fill-0m"> 228 <div style="grid-column:y 5"></div> 229 <div style="grid-column:y 4"></div> 230 <div style="grid-column:y 3"></div> 231 <div style="grid-column:y 2"></div> 232 <div style="grid-column:y 1"></div> 233 <div style="grid-column:y -1"></div> 234 <div style="grid-column:y -2"></div> 235 <div style="grid-column:y -3"></div> 236 <div style="grid-column:y -4"></div> 237 <div style="grid-column:y -5"></div> 238 </div></div> 239 240 <div class="grid"><div class="subgrid fill-1a"> 241 <div style="grid-column:y 5"></div> 242 <div style="grid-column:y 4"></div> 243 <div style="grid-column:y 3"></div> 244 <div style="grid-column:y 2"></div> 245 <div style="grid-column:y 1"></div> 246 <div style="grid-column:y -1"></div> 247 <div style="grid-column:y -2"></div> 248 <div style="grid-column:y -3"></div> 249 <div style="grid-column:y -4"></div> 250 <div style="grid-column:y -5"></div> 251 </div></div> 252 253 <div class="grid"><div class="subgrid fill-1b"> 254 <div style="grid-column:y 5"></div> 255 <div style="grid-column:y 4"></div> 256 <div style="grid-column:y 3"></div> 257 <div style="grid-column:y 2"></div> 258 <div style="grid-column:y 1"></div> 259 <div style="grid-column:y -1"></div> 260 <div style="grid-column:y -2"></div> 261 <div style="grid-column:y -3"></div> 262 <div style="grid-column:y -4"></div> 263 <div style="grid-column:y -5"></div> 264 </div></div> 265 266 <div class="grid"><div class="subgrid fill-1c"> 267 <div style="grid-column:y 5"></div> 268 <div style="grid-column:y 4"></div> 269 <div style="grid-column:y 3"></div> 270 <div style="grid-column:y 2"></div> 271 <div style="grid-column:y 1"></div> 272 <div style="grid-column:y -1"></div> 273 <div style="grid-column:y -2"></div> 274 <div style="grid-column:y -3"></div> 275 <div style="grid-column:y -4"></div> 276 <div style="grid-column:y -5"></div> 277 </div></div> 278 279 <div class="grid"><div class="subgrid fill-1d"> 280 <div style="grid-column:y 5"></div> 281 <div style="grid-column:y 4"></div> 282 <div style="grid-column:y 3"></div> 283 <div style="grid-column:y 2"></div> 284 <div style="grid-column:y 1"></div> 285 <div style="grid-column:y -1"></div> 286 <div style="grid-column:y -2"></div> 287 <div style="grid-column:y -3"></div> 288 <div style="grid-column:y -4"></div> 289 <div style="grid-column:y -5"></div> 290 </div></div> 291 292 <div class="grid"><div class="subgrid fill-1e"> 293 <div style="grid-column:y 5"></div> 294 <div style="grid-column:y 4"></div> 295 <div style="grid-column:y 3"></div> 296 <div style="grid-column:y 2"></div> 297 <div style="grid-column:y 1"></div> 298 <div style="grid-column:y -1"></div> 299 <div style="grid-column:y -2"></div> 300 <div style="grid-column:y -3"></div> 301 <div style="grid-column:y -4"></div> 302 <div style="grid-column:y -5"></div> 303 </div></div> 304 305 <div class="grid"><div class="subgrid fill-2a"> 306 <div style="grid-column:y 5"></div> 307 <div style="grid-column:y 4"></div> 308 <div style="grid-column:y 3"></div> 309 <div style="grid-column:y 2"></div> 310 <div style="grid-column:y 1"></div> 311 <div style="grid-column:y -1"></div> 312 <div style="grid-column:y -2"></div> 313 <div style="grid-column:y -3"></div> 314 <div style="grid-column:y -4"></div> 315 <div style="grid-column:y -5"></div> 316 </div></div> 317 318 <div class="grid"><div class="subgrid fill-2b"> 319 <div style="grid-column:y 5"></div> 320 <div style="grid-column:y 4"></div> 321 <div style="grid-column:y 3"></div> 322 <div style="grid-column:y 2"></div> 323 <div style="grid-column:y 1"></div> 324 <div style="grid-column:y -1"></div> 325 <div style="grid-column:y -2"></div> 326 <div style="grid-column:y -3"></div> 327 <div style="grid-column:y -4"></div> 328 <div style="grid-column:y -5"></div> 329 </div></div> 330 331 <div class="grid"><div class="subgrid fill-2c"> 332 <div style="grid-column:y 5"></div> 333 <div style="grid-column:y 4"></div> 334 <div style="grid-column:y 3"></div> 335 <div style="grid-column:y 2"></div> 336 <div style="grid-column:y 1"></div> 337 <div style="grid-column:y -1"></div> 338 <div style="grid-column:y -2"></div> 339 <div style="grid-column:y -3"></div> 340 <div style="grid-column:y -4"></div> 341 <div style="grid-column:y -5"></div> 342 </div></div> 343 344 <div class="grid"><div class="subgrid fill-2d"> 345 <div style="grid-column:y 5"></div> 346 <div style="grid-column:y 4"></div> 347 <div style="grid-column:y 3"></div> 348 <div style="grid-column:y 2"></div> 349 <div style="grid-column:y 1"></div> 350 <div style="grid-column:y -1"></div> 351 <div style="grid-column:y -2"></div> 352 <div style="grid-column:y -3"></div> 353 <div style="grid-column:y -4"></div> 354 <div style="grid-column:y -5"></div> 355 </div></div> 356 357 <div class="grid"><div class="subgrid fill-3a"> 358 <div style="grid-column:y 5"></div> 359 <div style="grid-column:y 4"></div> 360 <div style="grid-column:y 3"></div> 361 <div style="grid-column:y 2"></div> 362 <div style="grid-column:y 1"></div> 363 <div style="grid-column:y -1"></div> 364 <div style="grid-column:y -2"></div> 365 <div style="grid-column:y -3"></div> 366 <div style="grid-column:y -4"></div> 367 <div style="grid-column:y -5"></div> 368 </div></div> 369 370 <div class="grid"><div class="subgrid fill-3b"> 371 <div style="grid-column:y 5"></div> 372 <div style="grid-column:y 4"></div> 373 <div style="grid-column:y 3"></div> 374 <div style="grid-column:y 2"></div> 375 <div style="grid-column:y 1"></div> 376 <div style="grid-column:y -1"></div> 377 <div style="grid-column:y -2"></div> 378 <div style="grid-column:y -3"></div> 379 <div style="grid-column:y -4"></div> 380 <div style="grid-column:y -5"></div> 381 </div></div> 382 383 <div class="grid"><div class="subgrid fill-3c"> 384 <div style="grid-column:y 5"></div> 385 <div style="grid-column:y 4"></div> 386 <div style="grid-column:y 3"></div> 387 <div style="grid-column:y 2"></div> 388 <div style="grid-column:y 1"></div> 389 <div style="grid-column:y -1"></div> 390 <div style="grid-column:y -2"></div> 391 <div style="grid-column:y -3"></div> 392 <div style="grid-column:y -4"></div> 393 <div style="grid-column:y -5"></div> 394 </div></div> 395 396 <div class="grid"><div class="subgrid fill-4a"> 397 <div style="grid-column:y 5"></div> 398 <div style="grid-column:y 4"></div> 399 <div style="grid-column:y 3"></div> 400 <div style="grid-column:y 2"></div> 401 <div style="grid-column:y 1"></div> 402 <div style="grid-column:y -1"></div> 403 <div style="grid-column:y -2"></div> 404 <div style="grid-column:y -3"></div> 405 <div style="grid-column:y -4"></div> 406 <div style="grid-column:y -5"></div> 407 </div></div> 408 409 <div class="grid"><div class="subgrid fill-4b"> 410 <div style="grid-column:y 5"></div> 411 <div style="grid-column:y 4"></div> 412 <div style="grid-column:y 3"></div> 413 <div style="grid-column:y 2"></div> 414 <div style="grid-column:y 1"></div> 415 <div style="grid-column:y -1"></div> 416 <div style="grid-column:y -2"></div> 417 <div style="grid-column:y -3"></div> 418 <div style="grid-column:y -4"></div> 419 <div style="grid-column:y -5"></div> 420 </div></div> 421 422 <div class="grid"><div class="subgrid fill-5"> 423 <div style="grid-column:y 5"></div> 424 <div style="grid-column:y 4"></div> 425 <div style="grid-column:y 3"></div> 426 <div style="grid-column:y 2"></div> 427 <div style="grid-column:y 1"></div> 428 <div style="grid-column:y -1"></div> 429 <div style="grid-column:y -2"></div> 430 <div style="grid-column:y -3"></div> 431 <div style="grid-column:y -4"></div> 432 <div style="grid-column:y -5"></div> 433 </div></div> 434 435 <script> 436 const expectedResults = [ 437 "subgrid [z] [z] [z] [z] [z]", 438 "subgrid [x] [z] [z] [z] [z]", 439 "subgrid [x] [x] [z] [z] [z]", 440 "subgrid [x] [x] [x] [z] [z]", 441 "subgrid [x] [x] [x] [x] [z]", 442 "subgrid [x] [x] [x] [x] [x]", 443 "subgrid [x] [x] [x] [x] [x]", 444 "subgrid [x] [x] [x] [x] [x]", 445 "subgrid [x] [x] [x] [x] [x]", 446 "subgrid [x] [x] [x] [x] [x]", 447 "subgrid [z] [z] [z] [z] [z]", 448 "subgrid [x] [z] [z] [z] [z]", 449 "subgrid [x] [x] [x] [x] [x]", 450 "subgrid [y] [z] [z] [z] [z]", 451 "subgrid [x] [y] [z] [z] [z]", 452 "subgrid [x] [x] [y] [z] [z]", 453 "subgrid [x] [x] [x] [y] [z]", 454 "subgrid [x] [x] [x] [x] [y]", 455 "subgrid [y] [y] [z] [z] [z]", 456 "subgrid [x] [y] [y] [z] [z]", 457 "subgrid [x] [x] [y] [y] [z]", 458 "subgrid [x] [x] [x] [y] [y]", 459 "subgrid [y] [y] [y] [z] [z]", 460 "subgrid [x] [y] [y] [y] [z]", 461 "subgrid [x] [x] [y] [y] [y]", 462 "subgrid [y] [y] [y] [y] [z]", 463 "subgrid [x] [y] [y] [y] [y]", 464 "subgrid [y] [y] [y] [y] [y]", 465 ]; 466 [...document.querySelectorAll('.subgrid')].forEach(function(subgrid, i) { 467 let actual = window.getComputedStyle(subgrid)['grid-template-columns']; 468 let expected = expectedResults[i]; 469 if (actual != expected) { 470 let err = "Unexpected getComputedStyle value for subgrid " + i + " with className '" + subgrid.className + "':" + 471 " Actual: \"" + actual + "\", Expected: \"" + expected + "\""; 472 document.body.appendChild(document.createTextNode(err)); 473 } 474 }); 475 </script> 476 477 </body> 478 </html>