Re: [css3-exclusions] Reconciling exclusions and floats

On Feb 17, 2012, at 5:20 PM, Alan Stearns wrote:

> 
> 
> I'm not arguing that non-float layouts are impossible to reformulate as
> floats (given enough beefing-up of float positioning). I'm wondering why
> that reformulation should be required to use exclusions. We're developing
> these new positioning schemes like grid and flexbox, and we're developing
> exclusions, but they won't work together?

Ask yourself why they should. I think applying exclusions to in-flow objects is just bizarre.

Exclusions are by definition objects that are pulled out of flow. The only reason to make an object is an exclusion is if you are deliberately going to make it overlap with other objects. When this overlap occurs, you then want the lines in the other objects to avoid your exclusion. Even the very word "exclusion" implies that the object is not part of the normal flow.

Normal flow layout systems are specifically formulated to avoid overlap with their default constructs. Lines only overlap if you work to make them do so. Blocks only overlap if you overflow, apply negative margins, etc. Flexboxes are similar. Grids are similar.

Contrast these layout systems with floats and positioning where overlap is actually expected precisely because the objects were pulled out of flow. It is these constructs that it is logical to apply exclusions behavior to. I don't understand why you would want to apply exclusions to normal flow layout systems that are designed not to overlap their children by default. In every situation I can think of where you did that, you'd just be making the normal flow system more complex, e.g., because you'd then deliberately try to introduce overlap using constructs like negative margins. What is that buying you? Nothing as far as I can tell.

Also, I don't understand what the layout model would be for normal flow exclusions. An object sitting in normal flow is much more likely to be perturbed as a result of content flowing around it, and so I don't even get what behavior you'd expect.  With positioned and floating objects the rules are much simpler (locking a positioned object as you do a 2nd layout pass is much simpler than locking a normal flow object and trying to relayout a table or grid, since you already know it doesn't perturb the normal flow).

dave
(hyatt@apple.com)

Received on Friday, 17 February 2012 23:29:20 UTC