- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Wed, 20 Oct 2010 09:25:54 -0700
- To: www-style list <www-style@w3.org>
On Tue, Sep 14, 2010 at 1:46 PM, Tab Atkins Jr. <jackalmage@gmail.com> wrote: > On Tue, Sep 7, 2010 at 5:06 PM, Tab Atkins Jr. <jackalmage@gmail.com> wrote: >> This email is meant to address issue 199 on CSS2.1, which I >> volunteered to propose text for. >> http://wiki.csswg.org/spec/css2.1#issue-199 > > > Urgh, I meant to do this last week. New proposal, based on discussion > in the telcon: > > | Line boxes that contain no text, no preserved white space, no > | inline elements with non-zero margins, padding, or borders, and > | no other in-flow content (such as images, inline blocks or > | inline tables), and do not end with a line feed must be treated > | as zero-height line boxes for the purpose of positioning the > | elements inside of them, and must be treated as not existing > | for any other purpose. > > Change from current spec is just the last bit. The current spec says > to always treat such lineboxes as zero-height; my edit narrows it to > only treat them as such for positioning, and for all other purposes to > just pretend they don't exist. > > Now, I'm not sure this actually resolves the issues. Given Boris's > testcase, slightly altered: > > <div style="display:table"> > <div style="display:table-row"> > <div style="display:table-cell;background:red"> > <div style="width:150px;height:150px;background:blue"> > <span style="position:absolute;"></span> > </div> > </div> > <div style="display:table-cell;background:green">a<br/>b</div> > </div> > </div> > > ...what does it actually mean to say that the linebox exists for the > purpose of positioning the span? I can't really figure it out. > > Perhaps a proper edit would be to say that such elements are > positioned in the top start corner of the parent, and the lineboxes > just don't exist? > > Am I right in thinking that these lineboxes can only be created as the > sole linebox of an element? It seems that if there's another linebox > with actual content in it, then the type of contents that would appear > in this "phantom linebox" would instead just be collapsed together at > the end of the real linebox, right? Assuming that I was correct in my assumption immediately above, then I propose the following edit instead: | If an element contains no text, no preserved white space, no | inline elements with non-zero margins, padding, or borders, and | no other in-flow content (such as images, inline block, or | inline tables), then no line boxes are generated inside the | element. Any child elements that rely on the element for | positioning are treated as being in the "before start" corner | of the element. ~TJ
Received on Wednesday, 20 October 2010 16:26:49 UTC