flexbox-multi-row-vertical-lr-1c.html (3692B)
1 <!DOCTYPE html> 2 <!-- Any copyright is dedicated to the Public Domain. 3 http://creativecommons.org/publicdomain/zero/1.0/ --> 4 <html> 5 <meta charset="utf-8"> 6 <title>CSS Flexbox Test: Fragmentation of block-size:auto multi-line row flex container with fixed block-size flex items</title> 7 <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> 8 <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> 9 <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination"> 10 <link rel="match" href="flexbox-multi-row-vertical-lr-1-ref.html"> 11 <meta name="assert" content="This test verifies fragmentation of fixed block-size flex items in a block-size:auto multi-line row flex container, with various combinations of margin/border/padding, alignments, and gap. Also use a script to enlarge multicol block-size."> 12 13 <style> 14 html { 15 writing-mode: vertical-lr; 16 } 17 .multicol { 18 block-size: 30px; 19 inline-size: 200px; 20 column-width: 60px; 21 column-fill: auto; 22 column-gap: 10px; 23 border: 5px solid orange; 24 margin-block-end: 5px; /* Just to separate each sub-testcase visually. */ 25 } 26 .flexContainer { 27 display: flex; 28 flex-wrap: wrap; 29 flex-direction: row; 30 background: gray; 31 /* border-width is 0 by default; some sub-testcases will increase it. */ 32 border: 0 solid lightgray; 33 } 34 .border-padding { 35 border-block-width: 10px; 36 padding-block: 5px; 37 } 38 .with-gap { 39 row-gap: 20px; 40 column-gap: 10px; 41 } 42 43 header, nav, article, footer { 44 inline-size: 30px; 45 } 46 .with-gap header, .with-gap nav, .with-gap article, .with-gap footer { 47 inline-size: 25px; 48 } 49 50 /* Note: flex items are in visual order as "CMYK": cyan, magenta, yellow, black. */ 51 header { 52 background: cyan; 53 block-size: 50px; 54 } 55 nav { 56 background: magenta; 57 block-size: 25px; 58 align-self: flex-start; 59 } 60 article { 61 background: yellow; 62 block-size: 40px; 63 align-self: center; 64 } 65 footer { 66 background: black; 67 block-size: 50px; 68 align-self: flex-end; 69 } 70 71 body.multicol-children-block-size > .multicol { 72 block-size: 50px; 73 } 74 </style> 75 76 <script> 77 function runTest() { 78 document.body.offsetHeight; 79 80 /* Enlarge the multicol's block-size to exercise pulling and pushing flex items 81 of an already fragmented flex container. */ 82 document.body.classList.add("multicol-children-block-size"); 83 } 84 </script> 85 86 <body onload="runTest()"> 87 <!-- Basic one without any margin/border/padding. --> 88 <div class="multicol"> 89 <div class="flexContainer"> 90 <header></header><nav></nav><article></article><footer></footer> 91 </div> 92 </div> 93 94 <!-- Test a container with margin-block-start. --> 95 <div class="multicol"> 96 <div class="flexContainer" style="margin-block-start: 25px"> 97 <header></header><nav></nav><article></article><footer></footer> 98 </div> 99 </div> 100 101 <!-- Test a container not at the top of the column/page. --> 102 <div class="multicol"> 103 <div style="block-size: 25px"></div> 104 <div class="flexContainer"> 105 <header></header><nav></nav><article></article><footer></footer> 106 </div> 107 </div> 108 109 <!-- Test a container with border and padding. --> 110 <div class="multicol"> 111 <div class="flexContainer border-padding"> 112 <header></header><nav></nav><article></article><footer></footer> 113 </div> 114 </div> 115 116 <!-- Test a container with border, padding, and gap. --> 117 <div class="multicol"> 118 <div class="flexContainer border-padding with-gap"> 119 <header></header><nav></nav><article></article><footer></footer> 120 </div> 121 </div> 122 </body> 123 </html>