- From: Daniel Holbert <dholbert@mozilla.com>
- Date: Wed, 04 Apr 2012 21:48:46 -0700
- To: Alex Mogilevsky <alexmog@microsoft.com>
- CC: Tony Chang <tony@chromium.org>, "www-style@w3.org" <www-style@w3.org>
On 04/04/2012 04:37 PM, Alex Mogilevsky wrote:
> ± I see a few ways to handle this:
> ± 1) Do an extra pass after margin:auto to determine the new max ascent. This
> ± works, but it's slow.
> ± 2) margin: auto always causes flex-align/flex-pack to be ignored so we can
> ± ignore it when computing the max ascent.
>
> Actually it is (2), as currently defined in the spec:
[...]
> * Immediately before pack and align steps, if there are
> any auto margins on items in the direction of alignment
> and there is positive free space, the free space is
> distributed equally to the auto margins.
It's almost (2), with one exception.
The spec does currently use "flex-item-align" for the purpose of computing
cross axis size, and that happens *before* we've resolved auto-margins in
that axis.
Flexbox Layout Algorithm Step 7 ("Calculate the cross size of each flexbox
line") in particular says...
[[[
collect all the flexbox items with a ‘flex-item-align’ of ‘baseline’. Find
the maximum of the distances from their baseline to the cross-start edge
of their margin box, and the maximum of the distances from their baseline
to the cross-end edge of their margin box. Sum these two values.
]]]
...and that ends up potentially determining the cross size of the flexbox
line.
Then in Step 10 (3 steps later), we resolve 'auto' margins in the cross axis.
I think I agree that Tony's suggestion #2 is the sanest behavior --
perhaps we should address the point I brought up above by explicitly
calling for auto margins to nullify the effects of flex-item-align in
Flexbox Layout Algorithm step 7? Then, the section I quoted above would
then begin like so:
[[[
collect all the flexbox items with a ‘flex-item-align’ of ‘baseline’ {and
with no 'auto' margins in the cross axis}.
]]]
where my suggested new text is in curly-braces.
Thanks,
~Daniel
Received on Thursday, 5 April 2012 04:49:16 UTC