- From: Peter Moulder <peter.moulder@monash.edu>
- Date: Wed, 31 Oct 2012 11:12:07 +1100
- To: www-style@w3.org
On Wed, Oct 24, 2012 at 08:11:42PM +0200, Bert Bos wrote: > On Saturday 20 October 2012 15:24:30 Koji Ishii wrote: > > Recently I heard two different interpretations of "Allowed page > > breaks" in CSS3 Paged Media[1] (and also the same text appear in CSS > > 2.1,) > > [...] > > When [the content of an inline-block] is very long, longer than a page, > > I heard two different interpretations. > > > > 1. <p> is a block, and the <p> has a big line box. Since the linebox > > is bigger than the page, it's an overflow behavior and therefore > > page can break anywhere, even if it's at the middle of a line inside > > the span. > > > > 2. There are nested line boxes inside the span. UA should only break > > pages between the line boxes inside the span. > > > > Which is correct? > > You cannot break between the lines in the span without also breaking in > the middle of a line box of the p, which isn't allowed. I'm happy with this choice of behaviour, and I know that the above was in context of a request for "opinions", but I'd like to echo Koji's point that neither css3-page nor CSS21/page.html is clear in saying this (that I can see). The closest I can see is where §9.4 of css3-page says # In the normal flow, page breaks <em class="RFC2119">may</em> occur at # the following places: [...] (CSS21/page.html section 13.3.3 is similar, but with "can" instead of the RFC2119 "may".) For the css3-page wording, RFC2119 is quite clear that this describes "truly optional" behaviour. Even if one were to read between the lines that one can only break at the places explicitly listed, one could reasonably take that to include being allowed to break there, by virtue of the break within the inline-block being explicitly listed. (That said, I can also see that one might take this sentence as intending to mean "within each normal flow, page breaks may occur only at these places", and might take the content of an inline-block to be a different normal flow from that in which the inline-block participates; though see below on that second part.) The end of §9.4 implies that keeping content from overflowing the page boxes should be a goal, and similarly §9.6 currently reads as saying that the content of that inline-block SHOULD be broken across more than one page. If the example were modified to add an explicit page-break-before or -after directive, then, §9.1 says that page-break-before etc. must apply "in the normal flow of the root element" (and may be applied elsewhere). I don't see a definition of the exact phrase "in the normal flow of", but CSS21/visuren.html section 9.3 comes very close, apparently defining it to include the content of inline-blocks, table cells and overflow-other-than-visible blocks. Considering these points, and considering that there's at least one major implementation that does break within an inline-block and one WG member who's written to www-style to ask what the behaviour is, I think that both specs should be clarified if it is in fact desired that implementations not break within an inline-block. [Regarding CSS 2.1: "should" in the above is of course in the sense of having a technical soundness issue, ignoring the question of whether any errors in CSS 2.1 are to be corrected.] pjrm.
Received on Wednesday, 31 October 2012 00:12:33 UTC