- From: Bert Bos <bert@w3.org>
- Date: Wed, 16 Apr 2008 16:45:08 +0200
- To: W3C style mailing list <www-style@w3.org>
(ISSUE-35) If I understand Fantasai's proposal correctly, the ultimate goal is to add relative strengths to page break opportunities in level 3, so that the author can indicate between two undesired break points which is the lesser of two evils. (In level 2, if it has to be one or the other, the UA would probably take the one closest to the end of the page, for lack of any other information.) Relative strengths is a good goal, I think. E.g., you neither want to break a page after the first line of a paragraph, nor inside a two-line section header, but if it has to be one or the other, then take the former. (A level 2 UA always takes the latter, because 'orphans' is stronger than 'page-break-inside'.) The question is what is the best definition for level 2, given that we don't know yet how to introduce the strength factor in level 3 and we don't want to hold up level 2 until we do. Fantasai expects that one of the additions in level 3 will be a value for 'page-break-inside' that increases or decreases the "undesirability" of a page break inside an element relative to its parent element. The default should be neutral (neither stronger nor weaker than its parent). And that default should be the same in level 2 and in level 3 (under the principle that level 3 can't change the meaning of level 2 rules). That's a reasonable expectation, although without considering how 'widows', 'page-break-before' and others are extended, we don't know if a different approach might be better (e.g., a 'page-break-strength' property that applies to all page break opportunities of an element, whether from 'widows' or from 'page-break-before'). The current definition of 'page-break-inside' says that the property is inherited. From the viewpoint of the hypothetical level 3 model with multiple levels of break strength, that means that what is inherited is an absolute strength value. This is similar to how 'font-size' works: it inherits font sizes such as '12pt' and when you use the keyword 'larger' or a percentage it inherits the resulting absolute size. Fantasai proposes to not inherit 'page-break-inside', but instead treat the default value of 'auto' as meaning "neither increase nor decrease the strength" and to interpret 'avoid' as setting a certain medium level of strength. We don't have a good analog of that in CSS yet, but there is some resemblance with 'text-decoration' and 'display: none', in that once they are set, descendants cannot get rid of their effect. Either way, inherited or not inherited, it is possible to add keywords in level 3 to change the strength. The difference is that with the non-inherited version a child element in *level 2* cannot allow more breaks then its parent, because there is no third keyword in level 2. (In the inherited version, the keyword 'auto' has that function.) To fix that, Fantasai proposes that the 'auto' keyword should be interpreted as "decrease the strength slightly" rather than "neither decrease nor increase." However, that has the undesirable effect that the strength of breaks inside <div style="page-break-inside: avoid"> text </div> is different from <div style="page-break-inside: avoid"> <div> text </div> </div> Saying that 'auto' only decreases the strength in level 2, but not in level 3, is not good either, because then there is a difference between level 2 and level 3. Is it a problem that a child element cannot allow more page breaks than its parent? After all, 'page-break-inside' is typically set on small elements, such as a short PRE or a short note with a border around it. And all UAs should eventually implement level 3 with its new keywords... Indeed, I think it is a small problem. But why should we introduce a small problem and forbid a possible use when the other solution, inheritance, has no such problem, is just as extensible, and, furthermore, has been the rule since 1998? Bert -- Bert Bos ( W 3 C ) http://www.w3.org/ http://www.w3.org/people/bos W3C/ERCIM bert@w3.org 2004 Rt des Lucioles / BP 93 +33 (0)4 92 38 76 92 06902 Sophia Antipolis Cedex, France
Received on Wednesday, 16 April 2008 14:45:46 UTC