Re: [css3-multicol] overflow inside multicol elements

On Mar 4, 2013, at 10:26 PM, Robert O'Callahan <robert@ocallahan.org> wrote:

> If a column contains a relatively positioned inline element that extends across multiple lines, and its relative positioning pushes its bottom edge below the end of a column, how would you break it vertically?
> 
> If the answer is "slice it visually", i.e. allow a line to be cut in half along the horizontal axis, I wouldn't consider that any "safer to use" than what Firefox/IE/Opera have implemented.
> 

Yes, we just slice relative positioned objects and transforms visually. Does that look good? Not particularly, but when the content is *not* sliced, i.e., because it fully fit in the previous column, then it remains accessible and looks fine. Note that if the multicolumn block has overflow:hidden (which again will be common when you're paginating an entire document, you'll see a bad-looking slice with your approach as well), or you won't see the content at all if it is fully out of view.

Here is a summary of possible behaviors and pros/cons:

(1) Vertical offsets are outside the column flow.
   (a) Pros - Arguably the most intuitive behavior per the current CSS specifications. No bad slicing when overflow is visible.
   (b) Cons - Content becomes inaccessible or is sliced badly when the column block is clipped. Doesn't match how printing or vertical pagination works.

(2) Vertical offsets are in the flow, relative positioned object paginates at its original position.
   (a) Pros - Content is never lost, even when the column block is clipped.
   (b) Cons - Authors using multicolumn blocks that don't fill a viewport might find the behavior unintuitive. Content is sliced badly when it splits across columns.

(3) Vertical offsets are in the flow, relative positioned object paginates at its final position.
    (a) Pros - Content is never lost, even when the column block is clipped. No bad slices ever occur.
    (b) Cons - Relative positioning is being taken into account prior to layout, which does not match the current spec.

(4) Hybrid approach based off whether the content fits in previous/next column, UA is free to put the content in a previous page/column if it doesn't result in bad slicing.
    (a) Pros - Content at least has a shot at remaining visible more often when column block is clipped.
    (b) Cons - Authors might be confused by the dual behavior (e.g., spilling out when it can't fit within next/previous column, but pushing otherwise).

(5) Hybrid approach based off clipping of the column block. UA is free to try to keep the content accessible if it would otherwise be lost.
    (a) Pros - Behaves as authors expect when overflow is visible on column block. Only makes the advanced decision to keep vertical offsets in flow when the content would otherwise be lost.
    (b) Cons - Authors might be surprised by this behavior when the block is clipped, but then again, this behavior would match printing more closely, which might arguably be what the author wants if they set up the clip on the multicolumn block.

dave

Received on Tuesday, 5 March 2013 20:12:38 UTC