- From: Anton Prowse <prowse@moonhenge.net>
- Date: Fri, 04 Mar 2011 10:42:37 +0100
- To: "www-style@w3.org" <www-style@w3.org>
- CC: Bert Bos <bert@w3.org>
On 04/03/2011 01:06, Bert Bos wrote: > (Issue 192 is tracked at http://wiki.csswg.org/spec/css2.1#issue-192) > > On Wednesday) 01 September 2010 21:19:56 Anton Prowse wrote: >> From the f2f minutes[1]: >>> <glazou> >>> http://lists.w3.org/Archives/Public/www-style/2009Oct/0027.html >>> >>> dbaron: Anton's proposal for issue 1 looks fine. >>> dbaron: I don't think we want to make the second change. >>> dsinger: I think the "further" lacks a referent. >>> <fantasai> dbaron proposes s/further content/content after the >>> float/<fantasai> and s/it/that content/ >>> TabAtkins: And the third issue is invalid - Bert gave an example >>> where >>> >>> the content may have to be reflowed onto multiple >>> lines. >>> >>> RESOLVED: Accept change for first issue, accept dbarons' change >>> for >>> >>> the second issue, third issue is invalid. >> >> I don't believe the third issue to be invalid, and I went into rather >> a lot of detail in a later post[2] in the cited thread, in addition >> to responding[3,4] to the purported counter-example that Bert >> raised[5]. If Bert has a counter-example that he has not posted to >> the list, please could he do so. > > The spec says: > > Any content in the current line before a floated box is reflowed > in the first available line on the other side of the float. > > That is indeed only true if the box floats to the left (or to the right > in rtl text), otherwise the content stays visually "on this side" of the > float. The next sentence in the spec ("In other words...") says it more > clearly. This is text from 1998 and it is also in a section that says it > is merely an introduction, not the exact rules. We wouldn't write like > that anymore, but given that the exact rules are there as well, I don't > think it hurts. Indeed, but the "on the other side" isn't what's being objected to in Issue 192 (although it does need fixing). > I said previously that "first available" referred to the fact that the > text before the float might have to be broken over multiple lines. That > was a mistake, as you pointed out. The first available line ("line box" > might be better) is always just one line. Indeed, and it's the /same/ line. That is, prior content never gets pushed downwards. > [...] >> I also disagree with dbaron's change for issue 2, since the sentence >> in the spec is talking about moving line boxes (ie creating a gap >> between line boxes) not about flowing content (which is adequately >> handled by the preceding sentence in the spec), as David himself >> noted in [6]. > > I think that is the question here: do we move line boxes or content? > > What we want is that the *content* moves, viz., to the next line box > that is wide enough to hold it (or the first line box that isn't > shortened, whichever comes first). The shortened line boxes remain where > they are. They just happen to stay empty. > > David's rewrite removes the treacherous word "it" from the old text and > makes the referent explicit: > > If a shortened line box is too small to contain any content after > the float, then *that content* [my emphasis. BB] is shifted downward > until either it fits or there are no more floats present. > > There are no doubt still better ways to express it, but this does the > trick. >> Also, as I've pointed out before, 9.4.2 (Inline Formatting Context) >> incorrectly says "Line boxes are stacked with no vertical separation" >> so that needs editing too. > > No, that remains true, even in the presence of floats. It may look as if > there is space between the lines, but actually the space is made up of > empty line boxes. (The space is always an integral number times the > 'line-height'.) Woah, that's a completely different model to the one I have always assumed. You're saying that empty line boxes exist, stacked one atop the other. That doesn't fit in with the spec at all: 9.4.2: # 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. (which is subject to Issue 199). It's also not supported by browsers, since the pushed-down content always sits flush with the bottom of the float, not flush with some line box grid: <!DOCTYPE html> <div style="width:15em; line-height:10px"> text text text text text text text text text text text text text text text text text text <div style="width:10em; float:left; height:15px; background:yellow"></div> supercalifragilisticexpialodocious </div> >> In any case, the suggested phrase "content after the >> float" is ambiguous: it wants to refer to content after the float's >> placeholder, but can easily be misinterpreted as content prior to >> the placeholder which has moved to the other side of the float. > > True, but if you actually try to work from that interpretation, you'll > soon run into contradictions: A shortened line box next to a right- > floating image can never contain anything "after" in the sense of "to > the right of" that image. So "after" has to refer to the logical, not > the visual order. OK. Cheers, Anton Prowse http://dev.moonhenge.net
Received on Friday, 4 March 2011 09:43:08 UTC