Fixes To Positioning Model (was: New Layout Language)

Okay, I just want to sort of take this to the side, rather than hijack 
the other discussion.  We can all agree that the current positioning 
model is convinient, but can't handle all possible layouts the user 
might want to use, right?

As I stated before, I believe what we need is a positioning context that 
can be positioned like position: absolute, but content treats like a 
float (as in, inline content flows around it in the context).  There are 
actually multiple possible use cases for such a property in positioning, 
and doing columns and table-like layouts is just the start.

First of all, as mentioned before, this would allow the designer to 
create columns using top: 0; bottom: 0 that extend to be the length of 
the parent, and in the case where they are longer than then parent, will 
make the parent longer.  After all, why do we need a 'grid' concept when 
positioning already creates a grid?  The only problem with positioning 
right now is that other elements either react as if position: static was 
used, or they don't react at all.  There needs to be another option.

Next, another possible use case: an idea I wanted to try in a site a 
little while ago was to have images grafted into the top left and bottom 
right of a div, and have the text flow around them.  However, at this 
present time, it is not possible to float an element to the bottom the 
way I wanted; the only true way to do it requires guessing at where the 
image should go in the flow, which is hard.  Even if you know the 
line-height of the text, all the user has to do to bump up the text-size 
and make the text flow to new lines, and the design is broken.  However, 
a positioning block that acted like a float would allow the use of 
bottom: 0; right: 0 to put an object in the bottom right corner and have 
the text flow around it.

I'm sure there are other useful ways of using such a positioning 
element, but the important thing about such an element is that it would 
create what positiong is lacking: an element which can impact the 
contents of elements around it.

Oh, and if you're worrying about how this would interact as a float, IMO 
this would be best if floats TREATED this as a float; as in, objects 
that had float: left should not flow under the positioning element.  
However, I don't believe clear should work on this.

-- 
http://www.mozilla.org/products/firefox/ - Get Firefox!
http://www.mozilla.org/products/thunderbird/ - Reclaim Your Inbox!

Received on Thursday, 7 July 2005 02:28:32 UTC