<!DOCTYPE html> <!-- Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ --> <html> <meta charset="utf-8"> <title>CSS Flexbox Test: Fragmentation of block-size:auto multi-line row flex container with fixed block-size flex items</title> <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination"> <link rel="match" href="flexbox-multi-row-vertical-rl-1-ref.html"> <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 shrink multicol block-size."> <style> html { writing-mode: vertical-rl; } .multicol { block-size: 80px; inline-size: 200px; column-width: 60px; column-fill: auto; column-gap: 10px; border: 5px solid orange; margin-block-end: 5px; /* Just to separate each sub-testcase visually. */ } .flexContainer { display: flex; flex-wrap: wrap; flex-direction: row; background: gray; /* border-width is 0 by default; some sub-testcases will increase it. */ border: 0 solid lightgray; } .border-padding { border-block-width: 10px; padding-block: 5px; } .with-gap { row-gap: 20px; column-gap: 10px; } header, nav, article, footer { inline-size: 30px; } .with-gap header, .with-gap nav, .with-gap article, .with-gap footer { inline-size: 25px; } /* Note: flex items are in visual order as "CMYK": cyan, magenta, yellow, black. */ header { background: cyan; block-size: 50px; } nav { background: magenta; block-size: 25px; align-self: flex-start; } article { background: yellow; block-size: 40px; align-self: center; } footer { background: black; block-size: 50px; align-self: flex-end; } body.multicol-children-block-size > .multicol { block-size: 50px; } </style> <script> function runTest() { document.body.offsetHeight; /* Enlarge the multicol's block-size to exercise pulling and pushing flex items of an already fragmented flex container. */ document.body.classList.add("multicol-children-block-size"); } </script> <body onload="runTest()"> <!-- Basic one without any margin/border/padding. --> <div class="multicol"> <div class="flexContainer"> <header></header><nav></nav><article></article><footer></footer> </div> </div> <!-- Test a container with margin-block-start. --> <div class="multicol"> <div class="flexContainer" style="margin-block-start: 25px"> <header></header><nav></nav><article></article><footer></footer> </div> </div> <!-- Test a container not at the top of the column/page. --> <div class="multicol"> <div style="block-size: 25px"></div> <div class="flexContainer"> <header></header><nav></nav><article></article><footer></footer> </div> </div> <!-- Test a container with border and padding. --> <div class="multicol"> <div class="flexContainer border-padding"> <header></header><nav></nav><article></article><footer></footer> </div> </div> <!-- Test a container with border, padding, and gap. --> <div class="multicol"> <div class="flexContainer border-padding with-gap"> <header></header><nav></nav><article></article><footer></footer> </div> </div> </body> </html>