| <!DOCTYPE html> | |
| <!-- | |
| Any copyright is dedicated to the Public Domain. | |
| http://creativecommons.org/publicdomain/zero/1.0/ | |
| --> | |
| <html> | |
| <head> | |
| <title> | |
| CSS Test: Testing that used "flex-basis: content" is treated as | |
| "max-content" when calculating flex base size | |
| </title> | |
| <meta charset="utf-8"> | |
| <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"> | |
| <link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#flex-base-size"> | |
| <link rel="match" href="flexbox-flex-basis-content-004-ref.html"> | |
| <style> | |
| .container { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: flex-start; | |
| /* flex container has an extremely-constrained height (and items will | |
| overflow vertically). This is intentional, as part of stress-testing | |
| item sizing. We add a large margin-bottom so that overflowing | |
| items don't overlap between examples. */ | |
| height: 1px; | |
| margin-bottom: 49px; | |
| } | |
| .item { | |
| /* We give all flex items a used "flex-basis" of "content" | |
| (from "flex-basis:auto" and default "width:auto"). | |
| We also give them zero flex-grow, flex-shrink, and min-main-size, so | |
| that the flex base size entirely determines the flex item's size. */ | |
| flex: 0 0 auto; | |
| min-height: 0; | |
| border: 2px solid teal; | |
| } | |
| ib { | |
| display: inline-block; | |
| background: blue; | |
| border: 1px solid gray; | |
| width: 15px; | |
| height: 10px; | |
| } | |
| float { | |
| float: left; | |
| background: fuchsia; | |
| border: 1px solid gray; | |
| width: 15px; | |
| height: 10px; | |
| } | |
| canvas { | |
| background: brown; | |
| border: 1px solid gray; | |
| } | |
| .innerFlex { | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| innerItem { | |
| background: salmon; | |
| border: 1px solid gray; | |
| height: 10px; | |
| width: 15px; | |
| flex: none; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <!-- This test exists for symmetry with the previous set of tests | |
| (flexbox-flex-basis-content-003*). Those previous tests check how | |
| "flex-basis:content" is resolved to a flex base size, in the inline axis, | |
| when the container's size is constrained in that axis. This test does the | |
| same, but for the *block* axis, using flex-direction:column. As with the | |
| previous set of tests, the expectation here is that we should use the | |
| item's max-content size as its flex base size. Note that there's a bit | |
| less subtlety here because intrinsic sizes (min-content, max-content) are | |
| typically all the same in the block axis. | |
| --> | |
| <!-- Flex item has several inline-blocks | |
| (no spaces, to avoid any text-layout dependency): --> | |
| <div class="container"> | |
| <div class="item"><ib></ib><ib></ib><ib></ib></div> | |
| </div> | |
| <!-- Flex item has several floats: --> | |
| <div class="container"> | |
| <div class="item"> | |
| <float></float> | |
| <float></float> | |
| <float></float> | |
| </div> | |
| </div> | |
| <!-- Flex item has several inline replaced elements: | |
| (no spaces, to avoid any text-layout dependency): --> | |
| <div class="container"> | |
| <div class="item"> | |
| <canvas width="15" height="10"></canvas | |
| ><canvas width="15" height="10"></canvas | |
| ><canvas width="15" height="10"></canvas> | |
| </div> | |
| </div> | |
| <!-- Flex item *is* a replaced element: --> | |
| <div class="container"> | |
| <canvas class="item" width="25" height="10"></canvas> | |
| </div> | |
| <!-- Flex item is itself a flex container: --> | |
| <div class="container"> | |
| <div class="item innerFlex"> | |
| <innerItem></innerItem> | |
| <innerItem></innerItem> | |
| <innerItem></innerItem> | |
| </div> | |
| </div> | |
| <!-- Flex item is itself a multi-line flex container: --> | |
| <div class="container"> | |
| <div class="item innerFlex" style="flex-wrap: wrap"> | |
| <innerItem></innerItem> | |
| <innerItem></innerItem> | |
| <innerItem></innerItem> | |
| </div> | |
| </div> | |
| </body> | |
| </html> |