- From: Alex Mogilevsky <alexmog@microsoft.com>
- Date: Tue, 12 Jun 2012 22:09:25 +0000
- To: Daniel Holbert <dholbert@mozilla.com>
- CC: Tab Atkins Jr. <jackalmage@gmail.com>, fantasai <fantasai@inkedblade.net>, www-style list <www-style@w3.org>
± From: Daniel Holbert [mailto:dholbert@mozilla.com] ± Sent: Tuesday, June 12, 2012 12:13 PM ± ± On 06/11/2012 06:07 PM, Alex Mogilevsky wrote: ± > ± So right now, the spec is calling for all flexbox items to have ± > *both* their min- ± width *and* their min-height default to "min-content". ± > ± ± > ± I'd thought we only wanted this magic for the main axis's min-size ± > property, not ± for both min-size properties. Maybe I misunderstood though? ± > ± > We want the magic in both direction ± ± To be clearer / more specific: do we want "min-height:auto" to ever compute to ± something nonzero on a flex item in a horizontal flexbox? ± ± I don't think we do. Now -- in the *main* axis, there's a good reason for the ± magic, because without it, common values of the "flex" shorthand could easily ± end up shrinking an item below its min-content width. But in the cross axis, ± there aren't any flexbox-specific sizing surprises like that, IIUC. So I don't ± see a good reason for the cross-axis min-size property to have a magical ± default there when it computes to 0 everywhere else. Min/max 'auto' should have no meaning on cross axis (therefore zero, as you suggest). I expect that item's cross size should calculate the same way used height is calculated in normal flow, after which it may increase if alignment is 'stretch'. I believe the spec currently defines exactly that. ± > The actual magic that we want is "minimum size of content when laid out ± within constraints of cross size of flexbox". ± ± This makes sense to me (for the main-axis min-size property), though what ± you're describing is much more nuanced & complex than what the WD currently ± says... Opened a bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=17475 Proposed algorithm change (instead of two bullets that start with "otherwise"): <algorithm> Otherwise, lay out the item using available space with following dimensions: * On main axis: - if flex-basis is auto: infinite - if flex-basis 'fit-available' or 'fit-content': flex-container's main size, constrained by its min and max size. * On cross axis: flex container's cross size, constrained by its min and max size. The flex base size is the item's resulting measure. </algorithm> Alex
Received on Tuesday, 12 June 2012 22:11:08 UTC