- From: Håkon Wium Lie <howcome@opera.com>
- Date: Mon, 16 Sep 2013 12:31:40 +0200
- To: MURAKAMI Shinyu <murakami@antenna.co.jp>
- Cc: www-style@w3.org
MURAKAMI-san wrote: > I have read the CSS Page Floats editor's draft[1] (split from CSS3 GCPM) > and comparing with our (AntennaHouse) page floats implementation[2] > and have some questions. Thanks for your long message. You make many good points and I will go through in detail. However, I have a clarifying question and a few comments to the first part of your message. > [1] http://dev.w3.org/csswg/css-page-floats/ > [2] http://antennahouse.com/CSSInfo/float-extension.html > > > float-defer-column/page > ----------------------- > > Example 10 > > Float figure to the top of the column that follows the natural column: > .figure { float: top } > .figure { float-defer-column: 1 } > > This seems to correspond to our '-ah-float: top next column'. > However in most cases, 'auto-next' is more preferable than 'next'. I don't understand the 'auto-next' value, as defined and implemented by AH. The deifinition is: auto-next: The float is moved to the next page (or column) if there is no sufficient space in the current page (or column). However, if there isn't enough space in the current page/column, the float must be moved to the next page/column anyway. So, I don't understand what effect the value has. It seems similar to the 'unless-room' value found here: http://www.w3.org/TR/css3-gcpm/#float-modifiers However, the effect of 'unless-room' is that it turns on floating; if there is enough room, the element will not be floated. But 'auto-next' only applies to floats, so it it is not the same as 'unless-room'. > Probably the behavior of 'float-defer-column: none' will be like that. 'float-defer-column: none' means that the property will not result in any change of column. To express that the element should be turned into a float when it causes a column/page break, one can say: .fig { float: snap(0) } The "snap(0)" value isn't as intuitive as I'd like it to be, but it's important to have a function that takes a parameter. Giving it "0" means that it applies to elements that end up on top of a column after a column/page break. By turning these into floats, one can allow content that comes after the element in the source to fill the white space caused by the element in its natural column. Perhaps we could have an alias like: "snap(0)" == "make-me-a-float-if-I-cause-a-column-break-so-that-I-dont-create-a-big-ugly-block-of-whitespace" There's a discussion on the topic here: http://www.princexml.com/forum/topic/2379/float-unless-fit-vs-unless-room > I found two definitions of 'none' in the editor's draft: > > none > the page float appears in the natural column/page > ... > none > The page floats should appear in their natural column/page, if possible. > > I think the first definition is an error and the second is correct. Ops. Yes. An even more correct definition is probably none: this property does not cause the page float to move to another column/page That is, other properties/values may make the page float move to another column/page (e.g., the snap() value on 'float'). > "if possible" means that it may appear in the next (or a following) > column/page if not possible without making wasteful blank space and > column/page breaks, right? I'd say, "if possible" refers to fear of overlapping: if there isn't room for the element in the natural colum, it is not possible to display it there and it must be moved. (But I think the wording proposed above is more accurate.) -h&kon Håkon Wium Lie CTO °þe®ª howcome@opera.com http://people.opera.com/howcome
Received on Monday, 16 September 2013 10:32:19 UTC