W3C home > Mailing lists > Public > www-style@w3.org > June 2012

RE: [css3-flexbox] min-width & min-height "auto" value -- applies to both axes, or just main axis?

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>
Message-ID: <2C86A15F63CD734EB1D846A0BA4E0FC823CBFBEE@CH1PRD0310MB381.namprd03.prod.outlook.com>
 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 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:55 GMT