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

David Baron wrote:

 > > 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.

In a previous discussion, we concluded that we wanted to honor
'column-fill' for all content, not just the last page.

  http://lists.w3.org/Archives/Public/www-style/2011Dec/0455.html

Overflow columns are similar to pagination, and it therefore seems
reasonable to apply 'column-fill' to overflow columns as well. 

So, I'm tempted to remove this line from the spec:

  In continuous media, this property does not have any effect in overflow columns

That's not quite what you propose, but is it something you would agree
with?

David Hyatt wrote:

 > I think the spec needs to really spell out when and how balancing
 > is supposed to occur, because right now I really have no idea when
 > or how I'm supposed to balance columns. The current implementation
 > of balancing in WebKit is pretty poor as a result, since the spec
 > hasn't really provided enough information for me to really
 > understand what I'm supposed to do. I have no idea how forced
 > breaks affect balancing. I have no idea how overflow affects
 > balancing. There is no balancing algorithm in the spec, so I don't
 > know what the expectations are for balancing (is it 2-pass, is it
 > n-pass, etc.).

True, the spec is not very specific. It declares a goal for balanced
columns ("UAs should minimize the variation in column length") but
also says that other constraints should be honored (like 'widows' and
'orphans').

My resident implementer tells me that trying to express anything
beyond this, either in prose or in a pseudo-algorithm, will quickly
become very complex. I'm hesitant to add complexities or new
requirements to the spec at this stage.

Note, however, that this text has been added to the editor's draft
after discussions with Anton Prowse:

  There are two strategies for filling columns: columns can either be
  balanced, or not. If columns are balanced, user agents should try
  to fill all columns in a row so that the columns appear to have the
  same amount of content, while also trying to minimize the overflow
  content. If columns are not balanced, they are filled sequentially;
  some columns may end up partially filled, or with no content at
  all. In any case, user agents must honor forced page breaks and
  should try to honor ‘widows’, ‘orphans’ and other properties that
  may affect column lengths.

  http://lists.w3.org/Archives/Public/www-style/2012Jan/0392.html

Perhaps it addresses some of your concerns?

-h&kon
              Håkon Wium Lie                          CTO °þe®ª
howcome@opera.com                  http://people.opera.com/howcome

Received on Thursday, 4 April 2013 19:51:41 UTC