diff options
Diffstat (limited to 'layout/reftests/w3c-css/submitted/flexbox/flexbox-flex-basis-content-004b.html')
-rw-r--r-- | layout/reftests/w3c-css/submitted/flexbox/flexbox-flex-basis-content-004b.html | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/layout/reftests/w3c-css/submitted/flexbox/flexbox-flex-basis-content-004b.html b/layout/reftests/w3c-css/submitted/flexbox/flexbox-flex-basis-content-004b.html new file mode 100644 index 0000000000..a686f1aa1e --- /dev/null +++ b/layout/reftests/w3c-css/submitted/flexbox/flexbox-flex-basis-content-004b.html @@ -0,0 +1,130 @@ +<!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> |