[css3 region/page/multicol] naïve questions about breaks


It occurs to me that I have no idea how the flow of content is broken at 
region/page/column breaks.

css3-regions says[1] in section 4.3:

   # When a break splits a box, the box's margins, borders, and padding 
have no visual
   # effect where the split occurs. However, the margin immediately 
after a forced
   # page/column/region break will be preserved. A forced 
page/column/region break is a
   # break that does not occur naturally.

This is pretty much identical to what css3-page says[2] in 9.0 and what 
css3-multicol says[3] in 5.1.  Unfortunately it's not very enlightening; 
how does the content split?

Presumably a line box is never allowed to be split.  Is it permitted to 
split any other box? Given the standard margin/border/padding/content 
area representation of a box, a split is obviously permitted to occur 
inside the content area, but what about strictly inside the 
padding/border areas?  At the boundaries of these areas?  What about 
inside the margin areas?

If a box forces a break before itself then the box begins in a new 
column/page/region.  If it happens to be the first child of its parent 
box, which "components" of the parent also occur after the break, and 
which remain before the break, and which are ignored?

What about collapsing margins?  If a new paragraph naturally (ie not due 
to a forced break) begins at the top of a new page, what happens to its 
top margin?  Is it ignored?  Is the behaviour the same across pages, 
columns and general regions?

In the case of regions, a region is a BFC root and so we don't need to 
worry about margin collapsing between the region and its content.  What 
about columns in multicol?  What if, in a 2-column layout, both columns 
are configured to balance and both columns happen to end in a complete 
paragraph, both paragraphs having the same bottom margin... do the 
columns enclose those margins, collapse with them, ignore them?

Which module is going to define all this?  I feel it should be Regions, 
but it could be argued that it's Box's responsibility too.  I feel that 
multicol spanners are not well defined whilst these issues are unclear.

[1] http://dev.w3.org/csswg/css3-regions/#region-flow-break
[2] http://dev.w3.org/csswg/css3-page/#page-breaks

Anton Prowse

Received on Monday, 28 November 2011 16:39:11 UTC