W3C home > Mailing lists > Public > www-style@w3.org > February 2012

Re: [CSS21] BFC may become narrower and collide with a previous float

From: Alan Gresley <alan@css-class.com>
Date: Tue, 14 Feb 2012 15:48:05 +1100
Message-ID: <4F39E785.5020903@css-class.com>
To: Morten Stenshorne <mstensho@opera.com>
CC: fantasai <fantasai.lists@inkedblade.net>, "www-style@w3.org" <www-style@w3.org>
On 2/02/2012 12:38 AM, Morten Stenshorne wrote:

> I see that there has been some discussion in this thread regarding the
> meaning of "space". I believe space is two-dimensional in this context,
> but I don't think it matters that much here.
> Spec quote, part 1:
>      "The border box of a table, a block-level replaced element, or an
>      element in the normal flow that establishes a new block formatting
>      context (such as an element with 'overflow' other than 'visible')
>      must not overlap the margin box of any floats in the same block
>      formatting context as the element itself."
> Spec quote, part 2:
>       "If necessary, implementations should clear the said element by
>       placing it below any preceding floats, but may place it adjacent to
>       such floats if there is sufficient space."
> I don't see why anything in part 2 should invalidate what part 1
> says.

It doesn't. The problem is in the second part. It's just the wording 
like 'adjacent' (in 9.5) when used in something that has a left and 
right bias (like 'floats' or 'containing block'). It should state 
sufficient horizontal and vertical space.

> My interpretaion remains that under no circumstances should the
> border box of a table (...)  overlap the margin box of any floats in the
> same block formatting context.
> They clearly do overlap in e.g. Opera.

Agree fully. It is not good since some coders may use this technique as 
some unusual way to layout a page.

> Hence, I believe IE is more correct than the others.

If this is the case, then 9.4.1 [1] should also state that 'display: 
table' and 'display: table-row' also establish a new BFC since boxes 
with these display values also have the same behavior when beside floats.

Just noticed something with 9.4.1.

   | Floats, absolutely positioned elements, block containers
   | (such as inline-blocks, table-cells, and table-captions)
   | that are not block boxes, and block boxes with 'overflow'
   | other than 'visible' (except when that value has been
   | propagated to the viewport) establish new block formatting
   | contexts for their contents.

s/establish new block/establish a new block/

1. http://www.w3.org/TR/2011/REC-CSS2-20110607/visuren.html#block-formatting

Alan Gresley
Received on Tuesday, 14 February 2012 04:48:36 UTC

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:38:55 UTC