- From: <leslie.brown@evidian.com>
- Date: Sun, 24 Jun 2007 12:59:31 +0200
- To: www-style@w3.org
James Elmore proposed: > Markup: > <body> > <div id=header /> > <div id=body /> > <div id=leftbar /> > <div id=content /> > <div id=right /> > </div> > <div id=footer /> > </body> > and styling > div#body { flow:horizontal; height:*} > div#body > * { height: * } > div#body > div#content { width: * } > > All blocks inside div#body will be placed horizontally > in single row (flow:horizontal) > and will have height of content box of div#body > (second CSS rule) > div#body will take height left from #header and #footer > in the view (first rule). > And div#content will take full height of #body > and width left from #leftbar and #rightbar (third rule). I like the idea, which corresponds to what many of us find quasi-impossible to achieve without tables. Could it also be achieved via a "blocky" variant of float? . Same markup . Styling div#leftbar { float: left, blocky } div#right { float: right, blocky } div#content { float: blocky } where "blocky" says: the floated element extends to the full height of its containing element after all the content of the latter has been resolved. This would, for example, allow you to set the background of a sidebar on the sidebar itself rather than having to kludge it on the container (so easy with table cells!). Minimal impact on incremental rendering (?). I'm guessing that if the container has other content without "float: blocky" defined it should be treated as though it was a single blocky div, i.e. fills the remaining horizontal space and stretches the container if it's taller than the floated siblings. So, in fact (just thinking aloud here) you could specify "float: blocky" (or "float-strategy: blocky"?) on the containing element instead and get fairly reasonable results in older browsers. This would also avoid the confusion that might arise if a div contained some floats with and some without the blocky parameter. And I wonder if a "blockx" variant that triggers the same automatic filling along the x axis rather than the y axis might be useful for languages where text flows vertically rather than horizontally. Of course you'd then need float:top and float:bottom. Les Brown
Received on Sunday, 24 June 2007 11:00:15 UTC