- From: Arron Eicholz <Arron.Eicholz@microsoft.com>
- Date: Wed, 16 Mar 2011 20:00:44 +0000
- To: Anton Prowse <prowse@moonhenge.net>
- CC: "www-style@w3.org" <www-style@w3.org>
On Sunday, August 01, 2010 2:46 PM Anton Prowse wrote: > > 9.2.1 (Block-level elements and block boxes) says:[1] > > # Block-level elements (except for display 'table' elements, which are > # described in a later chapter) generate a principal block box that > # contains either only block boxes or only inline boxes. > > 9.2.1.1 (Anonymous block boxes) says:[2] > > # In a document like this: > # > # <DIV> > # Some text > # <P>More text > # </DIV> > # > # (and assuming the DIV and the P both have 'display: block'), the DIV > # appears to have both inline content and block content. To make it > # easier to define the formatting, we assume that there is an > # anonymous block box around "Some text". > # > # In other words: if a block box (such as that generated for the DIV > # above) has another block box or run-in box inside it (such as the P > # above), then we force it to have only block boxes and run-in boxes > # inside it. > > OK. But we also have the following from 16.6.1 (The 'white-space' > processing model)[3] (which will likely be moved to Ch.9; see [4]): > > 16.6.1: > # Any text that is directly contained inside a block element (not > # inside an inline element) should be treated as an anonymous inline > # element. > > Issue 1: > > Does that mean that there's an anonymous inline box around "Some text" > or that there's one around "Some text <P>More text" (which would mean > that the rules for breaking an inline box around a block then come into play)? > In fact it doesn't matter, since we end up with an anonymous block > containing an anonymous inline containing "Some text" in both > interpretations. But what if it were "Some text <SPAN>More text</SPAN> > End text"? In this case the two interpretations – anonymous inline boxes > around "Some text" and "End text" or one anonymous inline box around > everything – yield different results. > > I think the sentence from 16.6.1 says that it's the first interpretation, in each > case. I'd be grateful for confirmation of that! > > > 9.2.1.1: > # When an inline box contains a block box, the inline box (and its > # inline ancestors within the same line box) are broken around the > # block. The line boxes before the break and after the break are > # enclosed in anonymous boxes, and the block box becomes a sibling of > # those anonymous boxes. [...] > > Issue 2: > > s/contains a block box/contains an in-flow block box/ > > since containing a float doesn't cause the inline content to be split between > two different blocks. > > > Issue 3: > > What /does/ happen when an inline box contains a float? Does the run of > inlines+floats in which it sits get wrapped in an anonymous block box > which becomes the sibling of the floats? If so, this needs stating. > > > Issue 4: > > Is it the case that, with the exception of an anonymous table box, an > anonymous block box contains either only block boxes or only inline boxes, > much like a principal block box? (This is essentially the same question I'm > asking in [5] as part of the great box cleanup; we'll need to ensure we get the > same answer!) > > > 9.2.1.1: > # This model would apply in the following example if the following > # rules: > # > # body { display: inline } > # p { display: block } > # > # were used with this HTML document: > # > # <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> > # <HEAD> > # <TITLE>Anonymous text interrupted by a block</TITLE> > # </HEAD> > # <BODY> > # This is anonymous text before the P. > # <P>This is the content of P.</P> > # This is anonymous text after the P. > # </BODY> > # > # The BODY element contains a chunk (C1) of anonymous text followed by > # a block-level element followed by another chunk (C2) of anonymous > # text. The resulting boxes would be an anonymous block box around the > # BODY, containing an anonymous block box around C1, the P block box, > # and another anonymous block box around C2. > > Issue 5: > > Why would there be an anonymous block box around the BODY? Surely the > principal block box of the (implied[6]) HTML is what surrounds the > anonymous block box around C1, the principal block box of the P, and the > anonymous block box around C2. > > > [1] http://www.w3.org/TR/CSS2/visuren.html#block-boxes > [2] http://www.w3.org/TR/CSS2/visuren.html#anonymous-block-level > [3] http://www.w3.org/TR/CSS2/text.html#white-space-model > [4] http://lists.w3.org/Archives/Public/www-style/2010Jul/0440.html > [5] http://lists.w3.org/Archives/Public/www-style/2010Aug/0004.html > [6] http://www.w3.org/TR/html5/syntax.html#optional-tags > Thank you for your feedback. The CSSWG has addressed your concerns in the upcoming publication of the CSS 2.1 specification[1]. The CSSWG resolved to: Replace “The resulting boxes would be an anonymous block box around the P” with “The resulting boxes would be a block box representing the P”. We hope this closes your issue. Please respond before 18 March, 2011 if you do not accept the current resolution. [1] http://w3.org/TR/CSS
Received on Wednesday, 16 March 2011 20:01:19 UTC