Skip to content

Commit 5630e7b

Browse files
committed
[css-flexbox-1] Per WG resolution, make min-content cross size of multi-line column flexboxes act like it's a single column. #6777
1 parent 518fa4c commit 5630e7b

File tree

1 file changed

+36
-17
lines changed

1 file changed

+36
-17
lines changed

css-flexbox-1/Overview.bs

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3037,23 +3037,42 @@ Flex Container Intrinsic Cross Sizes</h4>
30373037
of its <a>flex items</a>.
30383038

30393039
For a <em><a>multi-line</a></em> <a>flex container</a>,
3040-
the <a>min-content</a>/<a>max-content</a> <a>cross size</a>
3041-
is the sum of the flex line cross sizes
3042-
resulting from sizing the flex container under a <a>cross-axis</a> <a>min-content constraint</a>/<a>max-content constraint</a> (respectively).
3043-
However, if the <a>flex container</a> is ''flex-flow: column wrap;'',
3044-
then it's sized by first finding the largest
3045-
<a lt="min-content contribution">min-content</a>/<a lt="min-content contribution">max-content</a>
3046-
<a>cross-size</a> contribution among the <a>flex items</a> (respectively),
3047-
then using that size as the <a>available space</a> in the <a>cross axis</a>
3048-
for each of the <a>flex items</a> during layout.
3049-
3050-
Note: This heuristic for ''column wrap'' <a>flex containers</a>
3051-
gives a reasonable approximation of the size that the <a>flex container</a> should be,
3052-
with each flex item ending up as min(<var>item’s own max-content</var>, <var>maximum min-content among all items</var>),
3053-
and each <a>flex line</a> no larger than its largest <a>flex item</a>.
3054-
It's not a <em>perfect</em> fit in some cases,
3055-
but doing it completely correct is insanely expensive,
3056-
and this works reasonably well.
3040+
the behavior depends on whether it's a row or column flexbox:
3041+
3042+
: ''flex-direction/row'' [=multi-line=] [=flex container=] [=cross-size=]
3043+
:: The <a>min-content</a>/<a>max-content</a> <a>cross size</a>
3044+
is the sum of the flex line cross sizes
3045+
resulting from sizing the flex container
3046+
under a <a>cross-axis</a> <a>min-content constraint</a>/<a>max-content constraint</a> (respectively).
3047+
3048+
: ''flex-direction/column'' [=multi-line=] [=flex container=] [=cross-size=]
3049+
:: The [=min-content=] [=cross size=]
3050+
is the largest [=min-content contribution=] among all of its [=flex items=].
3051+
3052+
Note: This heuristic effectively assumes a single flex line,
3053+
in order to guarantee that the [=min-content size=]
3054+
is smaller than the [=max-content size=].
3055+
If the flex container has a height constraint,
3056+
this will result in overflow,
3057+
but if the [=flex container=] is also a [=scroll container=],
3058+
it will at least be large enough to fit
3059+
any given column entirely within its [=scrollport=].
3060+
3061+
The [=max-content=] [=cross size=] is the sum of the [=flex line=] [=cross sizes=]
3062+
resulting from sizing the [=flex container=]
3063+
under a <a>cross-axis</a> <a>max-content constraint</a>,
3064+
using the largest <a lt="max-content contribution">max-content</a> <a>cross-size</a> contribution among the <a>flex items</a>
3065+
as the <a>available space</a> in the <a>cross axis</a>
3066+
for each of the <a>flex items</a> during layout.
3067+
3068+
Note: This heuristic gives a reasonable approximation
3069+
of the size that the <a>flex container</a> should be,
3070+
with each [=flex item=] laid out at its [=max-content contribution=] or larger,
3071+
and each <a>flex line</a> no larger than its largest <a>flex item</a>.
3072+
It's not a <em>perfect</em> fit in some cases,
3073+
but doing it completely correct is insanely expensive,
3074+
and this works reasonably well.
3075+
30573076

30583077
<h4 id='intrinsic-item-contributions'>
30593078
Flex Item Intrinsic Size Contributions</h4>

0 commit comments

Comments
 (0)