RE: [css3-multicol] page-break-inside and columns

Håkon said:
> There appears to be one remaining issue before the WG is 
> comfortable sending css3-multicol to Last Call. The current 
> editor's draft:
> 
>   http://dev.w3.org/csswg/css3-multicol/#column-breaks
> 
> states that he 'page-break-inside' property specifies the 
> behavior of natural column breaks inside elements. That is, 
> if you set:
> 
>   p { page-break-inside: avoid }
> 
> the formatter will try to avoid both page breaks and column 
> breaks inside p elements.

Upon a bit of further reflection, I think there are additional issues with combining the page-breaking and column-breaking properties that are worth considering.

I've attempted to look at all the combinations a set of six properties would enable, and identify which combinations are unachievable with the current definition.  I think if we want to add column-breaking to the page-breaking properties, we need to add 'avoid-all' or some such to page-break-before and page-break-after as well as adding it to page-break-inside as suggested above.

Doing so will address use cases like the following:
	I want to indicate that neither a page nor a column break should not occur after a header.
		h3 {page-break-after: avoid-all}

This still leaves some interesting combinations unreachable, such as 
	page-break-before: avoid; column-break-before: always;
The corresponding use case might be something like, I want this content at the top of a column, but not in the first column of the page.  And analogous for page-break-after.

I think we'll need to separate the properties or add an optional keyword to control column behavior if we want to enable these use cases.

> I propose to address this by having two keywords on the 
> 'page-break-inside' property:
> 
>   'avoid' -- avoids page breaks
>   'avoid-all' -- avoids page breaks and column breaks

If the WG wants to stay with adding column breaking to the page breaking properties, then in choosing whether we want to (a) add 'avoid-all' and keep 'avoid' to mean "avoid page breaks" or whether we want to (b) add 'avoid-page' and expand 'avoid' to mean "avoid page and column breaks", we should consider which approach is likely to produce the most acceptable results if an author adds 'columns: 2' to an existing style sheet which uses page-break*.  I have a bit of a personal pref for 'avoid' and 'avoid-page'; but given that the author was thinking page-breaks when they added those style rules, perhaps it's best to keep 'avoid' applying to pages and add 'avoid-all' for cols.  (Any way you look at it, the naming here is going to be ugly I guess.)

Best wishes,

Melinda

Received on Friday, 3 April 2009 03:38:21 UTC