Re: [css-page-floats] comments on Page Floats

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