mirror of
https://github.com/servo/servo.git
synced 2025-06-27 10:33:39 +01:00
129 lines
3.6 KiB
HTML
129 lines
3.6 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/
|
|
-->
|
|
<html>
|
|
<head>
|
|
<title>
|
|
CSS Test: Testing that explicit "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 "flex-basis: content".
|
|
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 content;
|
|
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>
|