W3C home > Mailing lists > Public > www-style@w3.org > August 2012

Re: [css3-break] page-break-* and break-* aliasing

From: MURAKAMI Shinyu <murakami@antenna.co.jp>
Date: Sat, 11 Aug 2012 16:11:50 +0900
To: fantasai <fantasai.lists@inkedblade.net>
Cc: "www-style@w3.org" <www-style@w3.org>
Message-Id: <20120811161149.FF38.C598BCD7@antenna.co.jp>
fantasai <fantasai.lists@inkedblade.net> wrote on 2012/08/08 10:38:08
> So, one of the major issues left with CSS3 Fragmentation was specifying
> the aliasing of page-break-* to break-*. Thankfully, Florian Rivoal came
> up with a brilliant proposal! Not only does it solve the problem well,
> it solves it easily.
> 
> Basically, the proposal is to have page-break-* be a limited "shorthand"
> for break-*. Since all UAs already have a mechanism to handle shorthands,
> all the consequences of this aliasing should be already well-understood,
> making it straightforward both to spec and to implement.
> 
> Florian's full writeup, explaining various alternatives and their impacts,
> is available at
>    http://wiki.csswg.org/ideas/aliasing
> The proposal in question is the last one: Shorthand/Longhand Take 2. I've
> added it to the editor's draft here:
>    http://dev.w3.org/csswg/css3-break/#page-break

I am ok with this approach. It is nice the shorthand 
'page-break-*: always' → longhand 'break-*: page' mapping.
But I think it is not very good the shorthand 
'page-break-*: avoid'  →  longhand 'break-*: avoid-page' mapping. 
I think  the shorthand 'page-break-*: avoid'  →  longhand 'break-*: avoid'
is better, because in most cases when we need to avoid page break 
we also need to avoid column or region break. 

For example, headings (h1-h6) usually have 'page-break-after: avoid' 
settings in existing stylesheets, and when they are used in multi-column or 
multi-region context, we expect that column/region breaks are also avoided.

The idea of shorthand  'page-break-*' and longhand 'break-*' seems 
similar to XSL-FO's. XSL-FO has own 'break-before' and 'break-after'
properties and keep-* properties, and CSS2 compatible 'page-break-*'
shorthand properties,  and the shorthand mappings are
page-break-after: always → break-after="page"
page-break-after: avoid → keep-with-next="always"
here, the XSL-FO property 'keep-with-next' consists both
'keep-with-next.within-page' and 'keep-with-next.within-column'
and it means 'page-break-*:avoid' avoids not only page breaks but
also column breaks in XSL-FO.
(See http://www.w3.org/TR/xsl11/#page-break-after for details.)
I want XSL-FO and CSS properties with same names are compatible.

I have one more question. I think the value 'always' and 'avoid' are 
not necessary for page-* properties, because 'always' should be same as 
'column' and 'avoid' should be same as 'avoid-column'.
(if not in multi-column context, a column break is a region break, and
if not in multi-region context, a region break is a page break)
Is this understanding wrong?

BTW, I think this is a editorial error that recto and verso values are missing in the break-before value definition:
http://dev.w3.org/csswg/css3-break/#break-before
Name: break-before
Value: auto | always | left | right | page | column | region | avoid | avoid-page | avoid-column | avoid-region
...
Name: break-after 
Value: auto | always | left | right | recto | verso | page | column | region | avoid | avoid-page | avoid-column | avoid-region 


-- 
MURAKAMI Shinyu
http://twitter.com/MurakamiShinyu
Antenna House Formatter:
http://www.antennahouse.com
Received on Saturday, 11 August 2012 07:12:12 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:58 GMT