[css3-page][css3-multicol] margins at page or column breaks

The current css3-page[1] and css3-multicol[2] drafts say that 
margins will be set to zero where page or column breaks occur.

[1] http://dev.w3.org/csswg/css3-page/#allowed-pg-brk
    ... When a page break occurs here, the used values of the adjoining
    'margin-bottom' and 'margin-top' properties are set to '0'.

[2] http://dev.w3.org/csswg/css3-multicol/#column0
    Because the rules for column breaks are similar to rules for page
    breaks, margins will be set to zero where column breaks occur.


I have some questions here:

1. Margins at beginning of document will be set to zero?
2. Margins at forced page breaks will be set to zero?
3. Margins at beginning of multi-column content will be set to zero?
4. Margins at forced column breaks (or forced page breaks in
   multi-column content) will be set to zero?

I examined some existing implementations with the attached test files:
margin-at-break.html -- for test 1 and 2
margin-at-break-multicol.html -- for test 3 and 4

implementations:
Firefox 3.1 Beta 2
Safari 3.2.1
Prince 6.0r7
PDFreactor 3.0.3311

test results:

1. Margins at beginning of document will be set to zero?
Firefox=No
Safari=No
Prince=No
PDFreactor=Yes

2. Margins at forced page breaks will be set to zero?
Firefox=Yes
Safari=Yes
Prince=No
PDFreactor=Yes

3. Margins at beginning of multi-column content will be set to zero?
Firefox=Yes
Safari=No
Prince=Yes
PDFreactor=? (multi-column not yet supported)

4. Margins at forced column breaks (or forced page breaks in
   multi-column content) will be set to zero?
Firefox=Yes
Safari=? (forced column breaks not yet supported?)
Prince=Yes
PDFreactor=? (multi-column not yet supported)


Which implementation is right?

Antenna House Formatter v5 Beta currently handled these margins in a
compatible way with Prince, i.e., 1=No, 2=No, 3=Yes, 4=Yes.
But if the CSS specification is clearly defined, we will follow it.


For your information:
XSL-FO[3] has space-before and space-after properties similar to
margin-top and margin-bottom in CSS.

[3] Extensible Stylesheet Language (XSL) Version 1.1
http://www.w3.org/TR/xsl11/

Space-before and space-after are discarded by default at the beginning
or end of a reference-area ("flow root" in CSS, i.e., page, column,
table-cell etc.) and it can be changed with space-before.conditionality
and space-after.conditionality specification.

Example:
  <fo:block space-before="2cm">
  The space-before of this block is discarded at beginning of page or column.
  </fo:block>

  <fo:block space-before="2cm" space-before.conditionality="retain">
  The space-before of this block is not discarded at beginning of page or column.
  </fo:block>


-- 
Shinyu Murakami
http://www.antennahouse.com
Antenna House Formatter
http://www.antenna.co.jp/AHF/en/

Received on Thursday, 8 January 2009 09:25:15 UTC