- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Mon, 09 Mar 2009 15:37:03 -0400
- To: Michael Jansson <mjan@em2-solutions.com>, www-style list <www-style@w3.org>
Michael Jansson wrote: > * My first assumption is that the space between the DIVs would > reside in an an anonymous block. Yes. This is explicitly covered by section 9.2.1.1 of CSS 2.1. > * Second assumption, SGM section 7.6.1 states that leading and > trailing blanks should be removed in this block, so the anonymous > block should in fact be treated as an empty anonymous block element. I'm not sure what "SGM section 7.6.1" is, but section 16.6.1 of CSS2.1 gives the same effect. > * Third assumption is that empty anonymous block elements should not > be rendered (does not have a margin, padding, etc) and should thus > not affect rendering of any sibling elements. This assumption seems to have no basis in the CSS2.1 specification. If this is the desired behavior, then it needs to be actually specified somewhere, explicitly. But even if I grant this assumption, this brings us to a slightly different testcase: <!DOCTYPE html> <html> <body> <div style="display: table-cell">A</div> <div style="position: absolute"></div> <div style="display: table-cell">B</div> </body> <html> In this case, the way CSS2.1 is written right now, are the two table-cell boxes are sibling boxes (since the positioned div is taken out of flow)? If not, how is this situation different from the one with the empty anonymous block above? Perhaps the real issue here is the term "sibling" as used in discussing anonymous boxes of various sorts, is never defined. Further, the creation of the box model from the DOM tree is either quite underspecified (including various unstated rules like the one for empty anonymous blocks suggested above) or quite different from what section 17.2.1 expects if taken at face value. -Boris
Received on Monday, 9 March 2009 19:37:51 UTC