The CSS Paged Media specification
(http://www.w3.org/TR/2004/CR-css3-page-20040225/) is currently unclear
as to what should happen when multiple page-break-* properties
accumulate. The spec is clear that a :left or :right pseudo-class can
require that a blank page or surface is generated.
For example:
<p>This is a paragraph on page 1.</p>
<div style="page-break-before">
<div style="page-break-before">
The first div causes a page break; does the second div cause
another page break, putting this content on page 3, or are the page
breaks collapsed into a single page break so that this is printed on
page 2?</div>
</div>
Or:
<body>
<p> I am printed on the first page.</p>
<div style="page-break-after:always">
<div style="page-break-after:always">
<div style="page-break-after:always">
<div style="page-break-after:always">
<div style="page-break-after:always"> I am also printed on the
first page.
</div>
</div>
</div>
</div>
</div>
<p>Where am I printed?</p>
</body>
Or:
<body>
<p style="page-break-after">This is a paragraph on page 1.</p>
<div style="page-break-before">
The p generated a page break; does the div cause another page
break, putting this content on page 3, or are the page breaks collapsed
into a single page break so that this is printed on page 2?
</div>
</body>
Different implementations behave differently, as might be expected. It
seems that most implementations collapse pages. Notably Opera's does
not. I propose that the spec be made explicit to require that
page-break properties collapse such that no empty pages or surfaces are
generated except for one when needed to get to the next right- or
left-facing page. Authors can use other means to create blank pages.
This would make printed results more interoperable.
Thoughts?
Best wishes,
Melinda
_____
HP - Melinda Grant
Connectivity Standards
Consumer Printing and Imaging
+1 (541) 582-3681
melinda.grant@hp.com
_____