- From: Daniel Holbert <dholbert@mozilla.com>
- Date: Wed, 15 Feb 2012 12:49:05 -0800
- To: "www-style@w3.org list" <www-style@w3.org>
- CC: Alex Mogilevsky <alexmog@microsoft.com>, "Tab Atkins Jr." <jackalmage@gmail.com>
Hi www-style, I was just reading through the updated flexbox algorithm, and I have a few corrections/questions about the updated flexbox algorithm. I've labeled these (a) through (k) below. Link to the algorithm: http://dev.w3.org/csswg/css3-flexbox/#layout-algorithm QUOTING STEP 2: {{ 2. Layout the flexbox items using the shrink-to-fit algorithm. If the main size of a flexbox item is flexible, treat it as the preferred size of that flexible length. Do not apply min/max-width/height constraints to the preferred size of flexible lengths - those constraints are handled elsewhere in this algorithm, and doing so will produce incorrect results. Each flexbox item now has a hypothetical main size. }} (a) Here, are we still laying out each child *as if it were the only child* (as a previous version of the ED stated about this part)? (b) "using the shrink-to-fit algorithm" -- could this link to somewhere where that algorithm is definitively defined? (c) The second sentence is very open to being misunderstood. I think it means to say something like "treat the flexible width as being inflexible and equal to its preferred size component", but it currently could be read to mean something different. (I initially read it to say "use the flexible width as the item's preferred size", which isn't what you want to do here since you don't want flexibility yet.) (d) On the final sentence about hypothetical main size, it'd be nice to say something like "This will produce..." rather than "Each flexbox item now has..." (so it's clear where the size came from) (e) Also -- each flexbox item also now has a hypothetical *cross* size, too, right? Might as well state that here as well. (Later on, Step 5 will tell us to "Update" the hypothetical cross sizes, without ever having established where these sizes were originally set.) QUOTING STEP 3.1: {{ If the main size depends on the flexbox's content, then: * for ‘min-content’, [...] * for ‘max-content’, [...] * for ‘fit-content’, [...] }} (f) Seems like above should say what to do for "auto" here -- AFAIK auto-sized flexboxes should shrink-wrap, & hence they depend on the flexbox's content. They probably want to share a line with fit-content, I imagine? QUOTING STEP 4: {{ 4. Find the actual main size of the flexbox. If the flexbox's main size doesn't rely on its contents, it's actual main size is calculated per the appropriate rules. }} (g) s/it's/its/ QUOTING STEP 7.2 - 7.3: {{ 7. Calculate the cross size of each flexbox line [...] 2. Collect all the flexbox items with a ‘flex-item-align’ of ‘start’, ‘end’, ‘center’, or ‘stretch’, or a value of ‘baseline’ and a cross axis parallel to their inline axis 3. Collect all the flexbox items with a ‘flex-item-align’ of ‘baseline’ and a cross axis perpendicular to their inline axis [...] }} (h) This would be much clearer if we reversed the order of 7.2 and 7.3 -- that way, the existing-7.2-text could simply refer to "the remaining flexbox items" without having to explicitly list their many flex-item-align possibilities. (i) The language "a cross axis parallel to their inline axis" makes it sound like the cross axis can differ for each flexbox-item (which it can't). It'd probably be clearer to say "an inline axis parallel to the flexbox's cross axis". (This applies to both 7.2 and 7.3) QUOTING STEP 9: {{ 9. For each flexbox line, align the flexbox items per ‘flex-align’. }} (j) s/flex-align/flex-item-align/ QUOTING STEP 10: {{ 10. Align the flexbox lines per ‘flex-item-align’. The leftover free-space is calculated by subtracting the sum of the flexbox line's cross sizes from the cross size of the flexbox's content box. }} (k) s/flex-item-align/flex-line-pack/ That's all I've got for now -- more coming later, possibly. :) ~Daniel
Received on Wednesday, 15 February 2012 20:49:33 UTC