W3C home > Mailing lists > Public > www-style@w3.org > February 2007

Re: Wrapping delimited lists, fluid rows

From: Andrew Fedoniouk <news@terrainformatica.com>
Date: Fri, 23 Feb 2007 22:21:47 -0800
Message-ID: <000701c757dc$0fe92df0$3501a8c0@TERRA>
To: "Daniel Beardsmore" <public@telcontar.net>, <www-style@w3.org>


----- Original Message ----- 
From: "Daniel Beardsmore" <public@telcontar.net>
To: <www-style@w3.org>
Sent: Friday, February 23, 2007 6:35 PM
Subject: Re: Wrapping delimited lists, fluid rows

>
> Andrew Fedoniouk wrote:
>>
>> ----- Original Message ----- 
>> From: "Daniel Beardsmore" <public@telcontar.net>
>> To: <www-style@w3.org>
>> Sent: Thursday, February 22, 2007 8:15 PM
>> Subject: Wrapping delimited lists, fluid rows
>>
.............
>>
>>
>> Rules like
>>
>> ul.menu li:after { content: " |  " }
>> ul.menu li:last-on-line:after { content: none }
>>
>> effectively create oscillation condition in the layout algorithm.
>
> Right, it's nice to be told why things can't possibly ever conceivably 
> work, but
> how CAN it be made to work? How CAN we prevent undesirable glitches like 
> this,
> and go on to handle fluid grid rows?
>
> I don't care what the CSS looks like -- you must realise that precise CSS 
> is not
> the issue, but achieving the presentation goal is.
>
>

In htmlayout engine (html/css engine) I've added two things
for that:
1) attribute  flow: vertical | horizontal | h-flow | v-flow [1]
2) flex length unit: %% [2]

So to define let's say left-sidebar - content - right-sidebar
layout that is stable for the content it is enough to say:

<div id="body" style="flow:horizontal">
   <ul class="leftbar" ><ul>
   <div class="content"></div>
   <ul class="rightbar" ><ul>
</div>

.leftbar , .rightbar
{
    width:20em;
    height: 100%%; // full height of the #body content box
}

.content
{
    width:100%%; // all space left from leftbar and righbar
                           // in the #body content box
    height: 100%%; // full height of the #body content box
}

So this create expandable single row layout.
There is no way in modern HTML/CSS to reproduce
this except of using tables.

This is not exactly what you need but at least something
that can replace table use cases. In some cases
flex units (%%) can give even more than tables can handle.

Andrew Fedoniouk.
http://terrainformatica.com

[1] Flow attribute: http://www.terrainformatica.com/htmlayout/flow.whtm
[2] Flex units: http://www.terrainformatica.com/htmlayout/fspu.whtm

Demo the engine : 
http://www.terrainformatica.com/htmlayout/HTMLayoutDemo.zip
     /bin/browse.exe ( Windows or Linux/Wine)
Sidebar flex layout:
     /html_samples/generic/sidebars.htm
Various flow attribute demos:
    /html_samples/flows/*.htm
Received on Saturday, 24 February 2007 06:22:00 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:49 GMT