- From: Håkon Wium Lie <howcome@opera.com>
- Date: Sun, 4 Jan 2009 15:10:04 +0100
- To: MURAKAMI Shinyu <murakami@antenna.co.jp>
- Cc: www-style@w3.org
Also sprach MURAKAMI Shinyu:
> I have a question about CSS3 GCPM Page floats [1].
>
> [1] http://dev.w3.org/csswg/css3-gcpm/#page-floats
> | page
> | This keyword indicates that the page box acts as containing block
> | for the purpose of 'float'.
> | multi-column
> | This keyword indicates that the multi-column element acts as
> | containing block for the purpose of 'float'.
> | top
> | This keyword indicates that the element is floated to the top of the
> | containing block.
> | bottom
> | This keyword indicates that the element is floated to the bottom of
> | the containing block.
>
> My question:
> What about the containing block for top/bottom floats when neither page
> nor multi-column keyword is specified?
> I expect the top-float is floated to the top of the current column.
Yes.
> But that is not obvious in the GCPM spec.
Right. However, the multicol specification [1] says:
Floats that appear inside multi-column layouts are positioned with
regard to the column box where the float appears.
[1] http://dev.w3.org/csswg/css3-multicol/
> My proposal:
> When the float property value has a vertical keyword (top, bottom) and
> has no reference keyword (page, multi-column), the containing block is
> formed by the content edge of the nearest box that is a column box or
> is a "flow root" defined in the CSS3 basic box model [3] or page area.
> In vertical text, a horizontal keyword is vice versa.
Again, from the multicol specification [1]:
Column boxes act like block-level, table cell, and inline-block
boxes as per CSS 2.1, section 10.1, item 2 [CSS21]. As a result,
floats are positioned with regard to the column box. However, the
column box does not establish a containing block for elements with
'position: fixed' or 'position: absolute'.
So, there are reasons to not make the column box a containing block.
However, I agree that GCPM should state that floats float within the
column box unless "page" or "multi-column" is specified. I propose to
express it in the description of "page" and "multi-column":
<dt>page
<dd>This keyword indicates that the page box (and not the column
box) acts as containing block for the purpose of 'float'
<dt>multi-column
<dd>This keyword indicates that the multi-column element (and not
the column box) acts as containing block for the purpose of 'float'
Could this work?
-h&kon
Håkon Wium Lie CTO °þe®ª
howcome@opera.com http://people.opera.com/howcome
Received on Sunday, 4 January 2009 14:16:08 UTC