Re: [CSS3] Flexible Flow Module, proposal.

Initial comments
================

Differences between default and vertical flow
---------------------------------------------
I think it would be worth emphasizing that:

1. Flex units can *not* be used within a flow:default container.
2. Margins of a flow:vertical container do *not* collapse with the
container's children (a flow:vertical element establishes a BFC).

The first seems to be implied, but not outright stated.  The second is
stated later in the proposal, but should be repeated here to highlight
the differences between flow:default and flow:vertical.


Margin Collapsing between two flex margins
------------------------------------------
The spec doesn't specify this, but I assume that if two elements
within an appropriate container had abutting margins of 1* and 2*,
that they would collapse to form a single 2* margin?


Interaction of flexes less than and greater than one
----------------------------------------------------
If you have two elements with widths .5* and 1* in a flow:horizontal
container, does this work identically to if the elements had widths 1*
and 2*?  It seems like the special free-space distribution mode only
triggers when the *sum* of the flexes is less than 1*, correct?


Clear and row/col wrapping
--------------------------
The spec is slightly unclear on this.  Does *any* value of clear other
than "none" automatically wrap the row?  Is the element that has the
clear property the one that goes down to the new row?  Overall I'd
prefer a new value for clear, such as "flow".  Using right in
horizontal flow doesn't make sense (assuming normal ltr direction),
and none of the values make sense for vertical flow.


Effects of width:auto on children of a flow:vertical-flow element
-----------------------------------------------------------------
Is it ever possible to create a new column in a flow:vertical-flow
element if the children are all display:block and width:auto?  Their
width would fill the element completely.  What if their width was 1*?

What happens if a child is wide enough to fill the entire containing
block, but you still have a forced break opportunity (either an
element with clear set, or an element which would cause the sum of the
vertical flexes to exceed 1*)?


Margin Collapsing Between Grandchildren of a non-default flowed element
-----------------------------------------------------------------------
You state that the children of a flowed element establish BFCs.  So,
given this structure:

<ul style="flow:vertical">
  <li>
    <p>foo</p>
  </li>
  <li>
    <p>bar</p>
  </li>
</ul>

The two paragraphs do *not* collapse their margins across the <li>
boundaries, correct?  So we are guaranteed (assuming standard
defaults) a 2em separation between the "foo" and the "bar", right?


position:absolute on a child of a non-default flow element
----------------------------------------------------------
You seem to say (in section 5) that abspos and fixedpos is *not
allowed* on children of an element with non-default flow.  Is this
correct?  If so, why?  Can't abspos/fixedpos elements just be removed
from the flow like normal, so they don't contribute to the flex
calculations?


Flex units and float
--------------------
How does a floated child of a non-default flow container interact with
the other children?


Children of a flow:template container without an appropriate position property
------------------------------------------------------------------------------
Are they merely appended to the bottom of the container?  The spec
just indicates that they take up a single full row in the container.


~TJ

Received on Friday, 10 April 2009 23:07:03 UTC