W3C home > Mailing lists > Public > www-style@w3.org > January 2008

Re: flowing around both sides of a float

From: James Elmore <James.Elmore@cox.net>
Date: Tue, 1 Jan 2008 13:43:12 -0800
Message-Id: <DB61B811-4840-4864-B5A1-438C5F9C2B28@cox.net>
To: John Oyler <johnoyler.css@gmail.com>, CSS <www-style@w3.org>

On Jan 1, 2008, at 12:31 PM, John Oyler wrote:

> On Jan 1, 2008, at 3:21 PM, Brad Kemper wrote:
>> On Jan 1, 2008, at 6:27 AM, David Woolley wrote:
>>> James Elmore wrote:
>>>> some of the proposals will be difficult to implement. Also, some  
>>>> will not be immediately used, simply because they are not known  
>>>> to be available. But providing tools which make CSS a more  
>>>> complete system of styling documents will make CSS a more useful  
>>>> tool set.
>>> One of the things that makes a good computing standard is that it  
>>> achieves a lot with a little.  One of the things that leads to  
>>> the eventual death of computing standards is that whilst they  
>>> start that way, they eventually try to do everything.  As a  
>>> result they get too complex (CSS is already well beyond the point  
>>> where most authors understand it well enough to be able to know  
>>> whether there are features to do things they want).
>> In this case (float:center), the "float" concept is well  
>> understood, and "center" is a common value to accompany "left" and  
>> "right" as keywords to describe horizontal position. Authors will  
>> not have a hard time understanding the addition of the "center"  
>> value to the "float" attribute. They may, on the other hand, have  
>> a hard time understanding why it is missing.
>> Float (or something like it) would be especially useful if it  
>> could be positioned absolutely, yet still affect the flow (so that  
>> inline elements and other traditional floats did not overlap it,  
>> and would be effected by its margin). The details of how that  
>> would work would probably be more complex, but the effect that  
>> float:center should have is pretty clear.
> It isn't clear how this could work. Float:absolute, and then it  
> uses left/right/top/bottom for positioning? I'm all for  
> float:center in principle at least, but at least I could wrap my  
> head around how it's supposed to work. Something more flexible  
> isn't as obvious even when I spend time thinking it through. Also,  
> would there be any point in a float:center if it were implemented?  
> If you can derive one behavior from the other...

I am proposing the ability to allow CSS to control the flow around  
any element (text, etc.). The problem (and the benefit) with 'float'  
is that is does more than one thing at a time -- it is a shorthand  
for 'make this a block, move it to the side, watch out for other  
'floats', reset the line box and reflow the contents of the line box,  
and allow the line box to return to its previous size when the  
element is passed'. If CSS allows the positioning of elements, why  
not have a style which allows other elements to flow around the  
positioned elements. Absolute positioning, relative positioning,  
etc., might be very useful when combined with 'flow-around.' Agreed  
that it would be difficult to implement, but it would make the  
understanding of 'float' simpler -- just say that 'float' is a  
relative positioning, followed by a 'flow-around.'

Once this style is possible, the designer can use 'position:  
absolute;' or 'position: relative;' or any other CSS positioning  
style to place the element, then use 'flow-around' (maybe I called it  
'wrap' in another email) to make the surrounding elements move out of  
the way.

I am not trying to add infinite arbitrary styles to CSS; I AM trying  
to add styles which are clearly missing from CSS, just as 'float:  
center;' is a clearly missing piece of the puzzle. But, I have seen  
so many problems in computers (especially programming and user  
interfaces) where the ability to do several things with one action/ 
command causes problems when only part of the ability is really  
needed for what the user really wants. Therefore a user needs to  
cancel out part of the results because there is no command for just  
the part of the actions the user wants to accomplish, and he/she  
needs to use the 'shorthand' and negate part of what the shorthand does.

Just a short example: I have an inline element (possibly an image,  
but not necessarily) in the middle of a paragraph. I want the element  
to remain at the exact position in the paragraph, but have the  
following text wrap around it. I can't do this with 'float' because  
it makes the element move to the margin, and may even move the  
element down if there are other floats already in the way.

> John Oyler
> john@discrevolt.com

James Elmore
Received on Tuesday, 1 January 2008 21:43:27 UTC

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:27:32 UTC