W3C home > Mailing lists > Public > www-style@w3.org > April 2009

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

From: Alex Mogilevsky <alexmog@microsoft.com>
Date: Sat, 4 Apr 2009 11:26:31 -0700
To: "Grant, Melinda" <melinda.grant@hp.com>, Håkon Wium Lie <howcome@opera.com>, "www-style@w3.org" <www-style@w3.org>
Message-ID: <7C2F64B551D8664AAD94A28DAC37D0206B6545DCAA@NA-EXMSG-C103.redmond.corp.microsoft.com>
The way I understand the meaning of "avoid" is that it in fact "try to avoid", not "forbidden".

In case of something with "page-break-inside:avoid" being potentially broken across pages, and across columns within page, I would expect the following order of layout attempts to stisfy the restriction
1) layout the element at current position in flow. If I fits in current column, done
2) start the element at the start of next column (unless already at the start of a column). If it fits in current page, done
3) start the element at the start of next page (unless already at the start of a page). 

In other words, you can try layout at different columns and/or pages, applying penalty of one per column break, plus one per page break, then minimize number of breaks that could not be avoided.

So it sounds like the thread leads to use cases for separate page and column 'avoid':

'avoid' -- avoid column and page breaks as much as possible

Xxxxx |       # Aaaaa | aaaaa #
xxxxx |       # aaaaa |       #
      |       # aaaaa |       #

'avoid-column' -- avoid column breaks; page breaks are not more important than other column breaks

Xxxxx | Aaaaa # aaaaa |       #
xxxxx | aaaaa #       |       #
      | aaaaa #       |       #

'avoid-page' -- avoid page breaks; allow column breaks within page

Xxxxx | aaaaa #       |       #
xxxxx | aaaaa #       |       #
Aaaaa | aaaaa #       |       #

Xxxxx | Aaaaa # aaaaa |       #
xxxxx | aaaaa # aaaaa |       #
      | aaaaa #       |       #

I am not sure what it would mean for implementation if it was required to support all of the above. It is more complicated but we'll have to see if it would make significant difference for performance.

-----Original Message-----
From: Grant, Melinda [mailto:melinda.grant@hp.com] 
Sent: Thursday, April 02, 2009 8:40 PM
To: Alex Mogilevsky; Håkon Wium Lie; www-style@w3.org
Subject: RE: [css3-multicol] page-break-inside and columns

Hi Alex,

> So I think if we do add another value, it should be the opposite:
> 	page-break-inside:avoid -- avoid page breaks, then 
> avoid column breaks 	
> 	page-break-inside:avoid-column -- avoid column breaks; 
> pay no attention to page breaks

Hmm, I'm not following...  As was pointed out in yesterday's teleconf, in a document with columns, a page break is of necessity also a column break...

Let's say I have a multicol document that contains several graphics, each of which has a long description.  I want each graphic and its description to be displayed on a single page, but I want the explanatory text to break across columns. 
If, as you suggest, we expand 'page-break-inside: avoid' to also apply to columns, how would I do this?  (I *don't* want the first column to be (partially) empty because the UA was trying to avoid column breaks!)

I see the missing value as 'avoid-page' rather than 'avoid-column' (if we expand the 'avoid' keyword to apply to columns; or 'avoid-all' if 'avoid' continues to mean avoid a page break).

Or am I missing something?

Best wishes,

Received on Saturday, 4 April 2009 18:27:13 UTC

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:07:35 UTC