mirror of
https://github.com/servo/servo.git
synced 2025-06-26 18:14:34 +01:00
61 lines
2.9 KiB
HTML
61 lines
2.9 KiB
HTML
<!DOCTYPE html>
|
|
<title>Flex minimum height of image with intrinsic min-height specified</title>
|
|
<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
|
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
|
|
<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content" />
|
|
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html" />
|
|
<link rel="bookmark" href="https://crbug.com/1088223">
|
|
<meta name="assert" content="Flex uses automatic minimum sizes when item specifies min-height:intrinsic, because that is treated as auto.">
|
|
|
|
<p>Test passes if there is a filled green square.</p>
|
|
|
|
<!--
|
|
Here's the spec trail why the height of this item is 100px.
|
|
|
|
1. The column flexbox has height:0, and the item has flex-shrink: 1. So
|
|
min-height will determine the item's flexed height.
|
|
|
|
2. The min-content value of the min-height property is equivalent to the
|
|
automatic size, per https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content,
|
|
because it's in the item's block dimension. (Blink legacy flex disagrees here)
|
|
|
|
3. Per https://drafts.csswg.org/css-flexbox/#min-size-auto, the used value of a
|
|
main axis automatic minimum size on a flex item that is not a scroll container
|
|
is a content-based minimum size.
|
|
|
|
4. The content-based min size of this item is min(content size suggestion,
|
|
specified size suggestion). We ignore transferred size suggestion because
|
|
this item has a specified size.
|
|
|
|
5. content size suggestion = 50px because the stretched width of 100px is sent
|
|
through the 2:1 aspect ratio to determine the image's min-content size in the
|
|
block axis.
|
|
|
|
5a. This flex container qualifies for 9.8.3:
|
|
|
|
If a single-line flex container has a definite cross size, the automatic
|
|
preferred outer cross size of any stretched flex items is the flex
|
|
container's inner cross size (clamped to the flex item's min and max cross
|
|
size) and is considered definite.
|
|
|
|
So the preferred width of the image is 100px.
|
|
5b. The float specified by the min-content calculation from css-sizing 5.1 is
|
|
<img src="support/300x150-green.png" style="width: 100px; float: left;" />
|
|
This element gets height 50px.
|
|
|
|
6. specified size suggestion = 100px because that's what's specified.
|
|
|
|
7. So content-based min size = min(50, 100) = 50px. That becomes its flexed
|
|
height (see #1).
|
|
|
|
8. Then, the item stretches its width to 100px. The item has an aspect ratio,
|
|
so does the new width change the height? Not according to
|
|
https://drafts.csswg.org/css-flexbox/#algo-stretch, which says "Note that
|
|
this step does not affect the main size of the flex item, even if it has an
|
|
intrinsic aspect ratio." The height remains 50px.
|
|
-->
|
|
|
|
<div style="height: 50px; width: 100px; background: green;"></div>
|
|
<div style="display: flex; flex-direction: column; width:100px; height: 0px;">
|
|
<img src="support/300x150-green.png" style="min-height: min-content; height: 100px;" />
|
|
</div>
|