- 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