[css3-multicol] 'column-fill' and column overflow

Regarding http://dev.w3.org/csswg/css3-multicol/#column-fill :

When 'column-fill' is set to 'balance' (which is the initial value),
it's not clear to me what should happen when overflow columns are
present.  Overflow columns can be present in continuous context
(continuous media, not within another column context), where the
columns overflow their container, due to a constrained height on the
multi-column element or due to explicit column breaks.  Overflow
columns can also be present in fragmentation context (paginated
media, or inside regions or multicolumns) due to these reasons or
due to a page/column/region break being too close to fit the entire
multicolumn element.

The specification currently says:
  # In continuous media, this property does not have any effect in
  # overflow columns (see below).

First, it seems odd to me that this distinguishes between continuous
vs. noncontinuous media rather than between fragmentation context
vs. continuous context.

Second, it seems odd that the distinction it draws is between being
*in* the overflow columns rather than whether the container *has*
overflow columns.  By this, consider the example of a multi-column
container with 2 non-overflow columns and a large unbreakable piece
of content at the start of the third column.  It seems odd to lay
this out as:

  +---------------------------+
  |+-----------+ +-----------+|+-----------+ +-----------+
  ||text text  | |text text  |||+--------+ | |text text  |
  ||text text  | |text text  ||||IMAGE   | | |           |
  ||text text  | |text text  ||||        | | |           |
  ||text text  | |text text  |||+--------+ | |           |
  ||           | |           |||text text  | |           |
  |+-----------+ +-----------+|+-----------+ +-----------+
  +---------------------------+

with balancing happening between the first two columns, but not
happening in the overflow columns.  It makes more sense to me to
disable the balancing in continuous context when overflow columns
are *present*, and only use balancing in continuous contexts when
there is excess height within the multicolumn element and no
overflow columns.  That seems to me to be the main use case for
balancing; having to do balancing in the other cases seems to me
like extra implementation complexity and reduced performance without
strong justification.

If the content consisted of equal-height lines with equally
preferable break points between each pair of lines, disabling
balancing in this way could be done as an optimization.  However,
that's not what all consists of, so the behavior is testable, and if
we want implementations not to balance in such cases, the spec needs
to say so.

-David

-- 
𝄞   L. David Baron                         http://dbaron.org/   𝄂
𝄢   Mozilla                           http://www.mozilla.org/   𝄂

Received on Saturday, 2 March 2013 21:38:42 UTC