<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Wanted: Layout System</title>
	<atom:link href="http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/feed/" rel="self" type="application/rss+xml" />
	<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/</link>
	<description>Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it&#039;s largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuff</description>
	<lastBuildDate>Fri, 19 Mar 2010 00:27:46 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Darrel Karisch</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-494817</link>
		<dc:creator>Darrel Karisch</dc:creator>
		<pubDate>Mon, 15 Mar 2010 16:37:39 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-494817</guid>
		<description>The CSS Scripting Layout Model that I mentioned above is able to emulate an HTML table and improve upon it by reducing the total area required.  please see...
 
http://blogs.eforceglobal.com/dkarisch/archive/2010/03/15/544.aspx

As I state in the blog... &quot;Scripting renders CSS layout a more open system whereby any developer the world over can contribute new techniques for content layout.&quot;

If &quot;people were asking for any decent layout mechanism at all, which CSS has historically lacked&quot; then why not CSS Scripting as an answer?</description>
		<content:encoded><![CDATA[<p>The CSS Scripting Layout Model that I mentioned above is able to emulate an HTML table and improve upon it by reducing the total area required.  please see&#8230;</p>
<p><a href="http://blogs.eforceglobal.com/dkarisch/archive/2010/03/15/544.aspx" rel="nofollow">http://blogs.eforceglobal.com/dkarisch/archive/2010/03/15/544.aspx</a></p>
<p>As I state in the blog&#8230; &#8220;Scripting renders CSS layout a more open system whereby any developer the world over can contribute new techniques for content layout.&#8221;</p>
<p>If &#8220;people were asking for any decent layout mechanism at all, which CSS has historically lacked&#8221; then why not CSS Scripting as an answer?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Darrel Karisch</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-493233</link>
		<dc:creator>Darrel Karisch</dc:creator>
		<pubDate>Tue, 23 Feb 2010 14:50:05 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-493233</guid>
		<description>It&#039;s been a year now since this article was posted.  I have put together a proposal and sample Chrome implementation of a CSS layout extension described at http://blogs.eforceglobal.com/dkarisch/archive/2009/07/16/536.aspx.

I think it meets or even exceeds the requirements that you and the responders to this post are demanding.</description>
		<content:encoded><![CDATA[<p>It&#8217;s been a year now since this article was posted.  I have put together a proposal and sample Chrome implementation of a CSS layout extension described at <a href="http://blogs.eforceglobal.com/dkarisch/archive/2009/07/16/536.aspx" rel="nofollow">http://blogs.eforceglobal.com/dkarisch/archive/2009/07/16/536.aspx</a>.</p>
<p>I think it meets or even exceeds the requirements that you and the responders to this post are demanding.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Icosidodecahedron - The Web Blog of Michael Kozakewich</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-479530</link>
		<dc:creator>Icosidodecahedron - The Web Blog of Michael Kozakewich</dc:creator>
		<pubDate>Thu, 15 Oct 2009 10:58:32 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-479530</guid>
		<description>[...] I retraced my steps: After reading that, I went to his blog. His latest entry at the time was a link to the blog of Eric Meyer, who pined about the need for a new way to lay out documents. His second link pointed [...]</description>
		<content:encoded><![CDATA[<p>[...] I retraced my steps: After reading that, I went to his blog. His latest entry at the time was a link to the blog of Eric Meyer, who pined about the need for a new way to lay out documents. His second link pointed [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: scotty</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-478118</link>
		<dc:creator>scotty</dc:creator>
		<pubDate>Mon, 28 Sep 2009 22:26:08 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-478118</guid>
		<description>If I had one modest wish. I&#039;d wish for height:100% to work in useful way. Just like it did for tables in quirks mode.</description>
		<content:encoded><![CDATA[<p>If I had one modest wish. I&#8217;d wish for height:100% to work in useful way. Just like it did for tables in quirks mode.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Is CSS 3 over-baked? - CSS3 . Info</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-474149</link>
		<dc:creator>Is CSS 3 over-baked? - CSS3 . Info</dc:creator>
		<pubDate>Thu, 20 Aug 2009 18:50:03 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-474149</guid>
		<description>[...] every prolific John Resig weighed (as did Eric Meyer) in the past on the CSS 3 specification and the template layout issues that many have with the [...]</description>
		<content:encoded><![CDATA[<p>[...] every prolific John Resig weighed (as did Eric Meyer) in the past on the CSS 3 specification and the template layout issues that many have with the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CSS positioning with vertical spacers &#124; Josef Richter</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-470219</link>
		<dc:creator>CSS positioning with vertical spacers &#124; Josef Richter</dc:creator>
		<pubDate>Wed, 08 Jul 2009 11:05:12 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-470219</guid>
		<description>[...] results, but you would probably choose different tool if you could&#8230; The community, including Eric Meyer and Shaun Inman obviously longs for a real layout [...]</description>
		<content:encoded><![CDATA[<p>[...] results, but you would probably choose different tool if you could&#8230; The community, including Eric Meyer and Shaun Inman obviously longs for a real layout [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Miles Carmany</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-460790</link>
		<dc:creator>Miles Carmany</dc:creator>
		<pubDate>Sat, 09 May 2009 05:25:14 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-460790</guid>
		<description>Would something along these lines be anything resembling reasonable?

&lt;code&gt;
div {
position: free-float;
top: 2em;
left: 2em;
 }
&lt;/code&gt;

Works like float, in that any siblings (and their descendants) must flow around it, but instead of the simple, binary float left or right, it can float in any direction, a specified distance.

Works like position: absolute, in that any other free-floated elements may obscure (or be obscured) based on z-index.

Works like position: absolute (and unlike position: relative), in that the final position is calculated with respect to its containing block.</description>
		<content:encoded><![CDATA[<p>Would something along these lines be anything resembling reasonable?</p>
<p><code><br />
div {<br />
position: free-float;<br />
top: 2em;<br />
left: 2em;<br />
 }<br />
</code></p>
<p>Works like float, in that any siblings (and their descendants) must flow around it, but instead of the simple, binary float left or right, it can float in any direction, a specified distance.</p>
<p>Works like position: absolute, in that any other free-floated elements may obscure (or be obscured) based on z-index.</p>
<p>Works like position: absolute (and unlike position: relative), in that the final position is calculated with respect to its containing block.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Too long.. - A Geek&#8217;s Life</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-460147</link>
		<dc:creator>Too long.. - A Geek&#8217;s Life</dc:creator>
		<pubDate>Wed, 06 May 2009 01:03:26 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-460147</guid>
		<description>[...] recently saw this post by web design god Eric Meyer, and it really cleared some things up for me regarding CSS.  I [...]</description>
		<content:encoded><![CDATA[<p>[...] recently saw this post by web design god Eric Meyer, and it really cleared some things up for me regarding CSS.  I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ready for use: CSS3 Template Layout &#124; Fyrdility</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-457811</link>
		<dc:creator>Ready for use: CSS3 Template Layout &#124; Fyrdility</dc:creator>
		<pubDate>Thu, 23 Apr 2009 11:31:59 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-457811</guid>
		<description>[...] by Eric Meyer&#8217;s Call for a layout system as well as his suggestion that many CSS features can be made to work using JavaScript, I went to [...]</description>
		<content:encoded><![CDATA[<p>[...] by Eric Meyer&#8217;s Call for a layout system as well as his suggestion that many CSS features can be made to work using JavaScript, I went to [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joel G</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-452971</link>
		<dc:creator>Joel G</dc:creator>
		<pubDate>Thu, 02 Apr 2009 23:40:11 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-452971</guid>
		<description>OK, nothing special I have to say, just that as a graphic designer just getting into web design, it sure would all be easier with a layout system. 

Learning all this HTML stuff and trying to know how CSS creates style sure is confusing. I&#039;m not really even very well versed in any of it and to be quite honest, I&#039;m shocked to realize that there is no system for layout on the web. 

With as much money, time and effort as people put in to creating the web and using it, it truly is remarkable how many overall conflicts there are in this stuff!</description>
		<content:encoded><![CDATA[<p>OK, nothing special I have to say, just that as a graphic designer just getting into web design, it sure would all be easier with a layout system. </p>
<p>Learning all this HTML stuff and trying to know how CSS creates style sure is confusing. I&#8217;m not really even very well versed in any of it and to be quite honest, I&#8217;m shocked to realize that there is no system for layout on the web. </p>
<p>With as much money, time and effort as people put in to creating the web and using it, it truly is remarkable how many overall conflicts there are in this stuff!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ali</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-452752</link>
		<dc:creator>Ali</dc:creator>
		<pubDate>Wed, 01 Apr 2009 20:31:54 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-452752</guid>
		<description>RE: Comment 10 by Dan Wilkinson.
As a Graphic Designer of 25 years, this comment hits the nail on the head. I am studying the Certificate in Web Design (I know I&#039;m a late starter eh!) at NZ Open Poly. As I delve deeper into the world of Browser &#039;hacks&#039; and floating elements it just gets more tedious, it isn&#039;t design it&#039;s compromise, the real basic of a designer&#039;s job is layout. Eric Meyer&#039;s post has summed up all the things I&#039;ve actually been thinking about and all the frustrations I&#039;m having at the moment and spelt it out. Phew! I&#039;m just pleased that as a relative newbie to Web Design I&#039;m not &#039;missing&#039; something about CSS and am not alone in wanting a different/better way of laying out my pages. After working in the Newspaper industry the module 3 layout technique actually makes good sense to me - shall we all get behind it and try and make it a reality then ?
Cheers
Ali</description>
		<content:encoded><![CDATA[<p>RE: Comment 10 by Dan Wilkinson.<br />
As a Graphic Designer of 25 years, this comment hits the nail on the head. I am studying the Certificate in Web Design (I know I&#8217;m a late starter eh!) at NZ Open Poly. As I delve deeper into the world of Browser &#8216;hacks&#8217; and floating elements it just gets more tedious, it isn&#8217;t design it&#8217;s compromise, the real basic of a designer&#8217;s job is layout. Eric Meyer&#8217;s post has summed up all the things I&#8217;ve actually been thinking about and all the frustrations I&#8217;m having at the moment and spelt it out. Phew! I&#8217;m just pleased that as a relative newbie to Web Design I&#8217;m not &#8216;missing&#8217; something about CSS and am not alone in wanting a different/better way of laying out my pages. After working in the Newspaper industry the module 3 layout technique actually makes good sense to me &#8211; shall we all get behind it and try and make it a reality then ?<br />
Cheers<br />
Ali</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Paulhus</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-452680</link>
		<dc:creator>Greg Paulhus</dc:creator>
		<pubDate>Wed, 01 Apr 2009 14:43:19 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-452680</guid>
		<description>I would like something like tables, call them containers or grid-something-or-other which is used for layout. Then you tag your content (this is a photo which shows blah blah blah and this bunch of text is the body of the page and this is the navigation, etc). Tagging the content should solve any accessibility issue right? What we need is a bulletproof layout system. Accessibility is easily solved by tagging content (and tagging content would also allow your content to be poured easily into a mobile version of your site, etc). The only thing this wouldn&#039;t solve is complete separation of content and presentation, but I don&#039;t believe that&#039;s worth worrying about. When you change the design the practical reality is that you are most likely also changing the content to serve the design. Design and content are strongly linked. And if your content is database-driven, it&#039;s separated by default, so why worry about that aspect?</description>
		<content:encoded><![CDATA[<p>I would like something like tables, call them containers or grid-something-or-other which is used for layout. Then you tag your content (this is a photo which shows blah blah blah and this bunch of text is the body of the page and this is the navigation, etc). Tagging the content should solve any accessibility issue right? What we need is a bulletproof layout system. Accessibility is easily solved by tagging content (and tagging content would also allow your content to be poured easily into a mobile version of your site, etc). The only thing this wouldn&#8217;t solve is complete separation of content and presentation, but I don&#8217;t believe that&#8217;s worth worrying about. When you change the design the practical reality is that you are most likely also changing the content to serve the design. Design and content are strongly linked. And if your content is database-driven, it&#8217;s separated by default, so why worry about that aspect?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tim Anderson&#8217;s ITWriting - Tech writing blog &#187; CSS: a long wait for the aha moment</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-452643</link>
		<dc:creator>Tim Anderson&#8217;s ITWriting - Tech writing blog &#187; CSS: a long wait for the aha moment</dc:creator>
		<pubDate>Wed, 01 Apr 2009 12:11:27 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-452643</guid>
		<description>[...] noticed that the aforementioned Eric Meyer is increasingly critical of the language. In his post Wanted: Layout System he writes: Maybe CSS isn&quot;t the place for this. Maybe there needs to be a new layout language that [...]</description>
		<content:encoded><![CDATA[<p>[...] noticed that the aforementioned Eric Meyer is increasingly critical of the language. In his post Wanted: Layout System he writes: Maybe CSS isn&#8221;t the place for this. Maybe there needs to be a new layout language that [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard Green</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-450476</link>
		<dc:creator>Richard Green</dc:creator>
		<pubDate>Mon, 23 Mar 2009 20:07:01 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-450476</guid>
		<description>Maybe a bit of a radical idea here, but maybe what&#039;s needed is not a &#039;layout system&#039;, but a &#039;template system&#039;.

What might be nice is if you could predefine a bunch of templates that can be used anywhere on your site (like a master page to use the .net example). These files (why not make them individual files?) would have a simple xml based syntax that consists of... tables! Hey, everyone knows tables, they know how to use colspans and rowspans etc..

So in your &#039;actual&#039; html file, you&#039;d have a tag called (for example) &#039;content&#039;, with an attribute of &#039;template&#039; that pointed to your file. That file would naturally be cached by the browser and loaded. Within your content tag, you&#039;d have multiple &#039;section&#039; tags with IDs that correlate to a table cell in the template. These section tags would just have ordinary content that the browser would dutifully drop into the correct place of the template.

You get source order independence, the free use of tables (they&#039;re just used as a rendering crutch), lean-as-you-like markup, funky new reusable and cacheable templates. Defined in a nice simple easy to comprehend markup.

And also there&#039;s no reason why you couldn&#039;t have multiple &#039;content&#039; tags in your page that implemented different templates.

Ok, minor change of the HTML 5 spec, but I like it.</description>
		<content:encoded><![CDATA[<p>Maybe a bit of a radical idea here, but maybe what&#8217;s needed is not a &#8216;layout system&#8217;, but a &#8216;template system&#8217;.</p>
<p>What might be nice is if you could predefine a bunch of templates that can be used anywhere on your site (like a master page to use the .net example). These files (why not make them individual files?) would have a simple xml based syntax that consists of&#8230; tables! Hey, everyone knows tables, they know how to use colspans and rowspans etc..</p>
<p>So in your &#8216;actual&#8217; html file, you&#8217;d have a tag called (for example) &#8216;content&#8217;, with an attribute of &#8216;template&#8217; that pointed to your file. That file would naturally be cached by the browser and loaded. Within your content tag, you&#8217;d have multiple &#8217;section&#8217; tags with IDs that correlate to a table cell in the template. These section tags would just have ordinary content that the browser would dutifully drop into the correct place of the template.</p>
<p>You get source order independence, the free use of tables (they&#8217;re just used as a rendering crutch), lean-as-you-like markup, funky new reusable and cacheable templates. Defined in a nice simple easy to comprehend markup.</p>
<p>And also there&#8217;s no reason why you couldn&#8217;t have multiple &#8216;content&#8217; tags in your page that implemented different templates.</p>
<p>Ok, minor change of the HTML 5 spec, but I like it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: elucid(blue) &#187; The Standards of Tomorrow Are Obsolete Today</title>
		<link>http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comment-450462</link>
		<dc:creator>elucid(blue) &#187; The Standards of Tomorrow Are Obsolete Today</dc:creator>
		<pubDate>Mon, 23 Mar 2009 17:05:58 +0000</pubDate>
		<guid isPermaLink="false">http://meyerweb.com/?p=1052#comment-450462</guid>
		<description>[...] later? And that doesn&#8217;t even touch on the power variables would give over layout controls. We need a layout system, and CSS is not [...]</description>
		<content:encoded><![CDATA[<p>[...] later? And that doesn&#8217;t even touch on the power variables would give over layout controls. We need a layout system, and CSS is not [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head profile="http://gmpg.org/xfn/1">
<title>meyerweb.com</title>
<link rel="openid.server" href="http://www.myopenid.com/server">
<link rel="openid.delegate" href="http://emeyer.myopenid.com/">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link rel="shortcut icon" href="/favicon.ico"><link rel="home" href="http://meyerweb.com/" title="Home" ><link rel="stylesheet" href="http://meyerweb.com/ui/meyerweb.css" type="text/css" media="screen, projection"><link rel="stylesheet" href="http://meyerweb.com/ui/theme.css" type="text/css" media="screen, projection" id="themeLink"><link rel="stylesheet" href="http://meyerweb.com/ui/print.css" type="text/css" media="print"><script src="http://meyerweb.com/ui/addresses.js" type="text/javascript"></script><link rel="stylesheet" href="/ui/wordpress.css" type="text/css" media="screen">
<link rel="stylesheet" href="/ui/tfe.css" type="text/css" media="screen">
<link rel="stylesheet" href="/ui/home.css" type="text/css" media="screen">
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric" href="/eric/thoughts/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric (only technical posts)" href="/eric/thoughts/category/tech/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Thoughts From Eric (only personal posts)" href="/eric/thoughts/category/personal/rss2/full" />
<link rel="alternate" type="application/rss+xml" title="Distractions" href="/eric/thoughts/recent-links/rss2" />
<link rel="alternate" type="application/rss+xml" title="Excuse of the Day" href="/feeds/excuse/rss20.xml" />
</head>
<body id="www-meyerweb-com" class="hpg">

<div id="sitemast"><h1><a href="/"><span>meyerweb</span>.com</a></h1></div><div id="search"><h4>Exploration</h4><!-- SiteSearch Google --><form method="get" action="http://www.google.com/custom" target="_top"><div><input type="hidden" name="domains" value="meyerweb.com"></input><label for="sbb" style="display: none">Submit search form</label><input type="submit" name="sa" value="Google Search" id="sbb"></input><label for="sbi" style="display: none">Enter your search terms</label><input type="text" name="q" size="31" maxlength="255" value="" id="sbi"></input><p><input type="radio" name="sitesearch" value="meyerweb.com" checked id="ss1"></input><label for="ss1" title="Search meyerweb.com">meyerweb.com</label><input type="radio" name="sitesearch" value="" id="ss0"></input><label for="ss0" title="Search the Web">Web</label></p><input type="hidden" name="client" value="pub-3772084027748653"></input><input type="hidden" name="forid" value="1"></input><input type="hidden" name="ie" value="ISO-8859-1"></input><input type="hidden" name="oe" value="ISO-8859-1"></input><input type="hidden" name="safe" value="active"></input><input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1"></input><input type="hidden" name="hl" value="en"></input></div></form><!-- SiteSearch Google --><!-- <form method="get" action="http://www.google.com/custom"><div><input type="submit" name="sa" value="Search"><input type="text" name="q" size="20" maxlength="255" value=""><input type="hidden" name="sitesearch" value="meyerweb.com"></div></form><small><a href="http://www.google.com/search">Powered by Google</a></small> --></div><div id="main"><div class="skipper">Skip to: <a href="#extra">site navigation/presentation</a></div><div class="skipper">Skip to: <a href="#thoughts">Thoughts From Eric</a></div>
<div id="thoughts">


<div class="entry">
<h3><a href="http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/" rel="bookmark" title="Permanent Link: Wanted: Layout System">Wanted: Layout System</a></h3>
<ul class="meta">
<li class="date">Tue 17 Feb 2009</li>
<li class="time">1000</li>
<li class="cat"><a href="http://meyerweb.com/eric/thoughts/category/tech/browsers/" title="View all posts in Browsers" rel="category tag">Browsers</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/css/" title="View all posts in CSS" rel="category tag">CSS</a><br> <a href="http://meyerweb.com/eric/thoughts/category/rants/" title="View all posts in Rants" rel="category tag">Rants</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/standards/" title="View all posts in Standards" rel="category tag">Standards</a><br> <a href="http://meyerweb.com/eric/thoughts/category/tech/w3c/" title="View all posts in W3C" rel="category tag">W3C</a></li>
<li class="cmt"><a href="http://meyerweb.com/eric/thoughts/2009/02/17/wanted-layout-system/#comments">130 responses</a></li>
<li></li><li></li></ul>

<div class="text">
<p class="aside">(This is part of the <a href="http://meyerweb.com/eric/thoughts/2009/02/11/feedback-on-wasp-community-css3-feedback-2008/">Feedback on &#8216;WaSP Community CSS3 Feedback 2008&#8242;</a> series.)</p>
<p>
Not surprisingly, there was a lot of community feedback <a href="http://fantasai.inkedblade.net/style/discuss/wasp-feedback-2008#layout">asking for better layout mechanisms</a>.  Actually, people were asking for any decent layout mechanism at all, which CSS has historically lacked.  Floats mostly work, but they&#8217;re a hack and can be annoyingly fragile even when you ignore old-browser bugs.  Positioning works in limited cases, but does not handle web-oriented layout at all well.
</p>
<p>
Why do we use floats for layout, anyway?  <code>clear</code>.  That&#8217;s pretty much the whole answer.  The unique in-flow/out-of-flow nature of floats means they interact with each other and with the normal flow, which means they can be cleared, which makes them useful.  Because with <code>clear</code>, we can float layout blocks around and then push other non-floated blocks, like footers, below the floats.
</p>
<p>
Positioning, of course, permits total layout freedom in the sense that you can put a layout block anywhere with respect to its containing block.  The downfall is that absolutely positioned elements are entirely out of the normal flow, so they can&#8217;t stay out of each others&#8217; way like floats do, and you can&#8217;t clear anything with respect to a positioned element.  If there had been a <code>position-clear</code> or its equivalent from the outset, we&#8217;d never have bothered with floats.
</p>
<p>
(And if we can just add <code>position-clear</code> to CSS, that would be completely awesome.  It&#8217;s <a href="http://www.shauninman.com/archive/2006/05/22/clearance_position_inline_absolute">been done with JavaScript</a> and it will most likely be done again and better.  It wouldn&#8217;t even be that hard to implement, at least for 99.5% of cases.)
</p>
<p>
All this is why the old &#8220;only use tables for layout&#8221; argument keeps coming up over and over: strip away the overheated rhetoric and obvious link-baiting, and you find the core of a real need.  Because as powerful as CSS can be, table cells do certain things very easily that CSS makes very, very hard.  Cells stretch vertically, keeping equal heights as a matter of their intrinsic nature.  They stay out of each others&#8217; way, while still being allowed to sit next to each other and use any sizing dimensions.  They tie their layout to their parent elements, and vice versa.
</p>
<p>
There are <em>no</em> equivalents in CSS.  There have been various very clever attempts to replicate bits and pieces of those capabilities using CSS.  What CSS does, it does very well: if you don&#8217;t need equal-height layout blocks, then no problem.  If you do, it&#8217;s a massive pain.  Clever techniques provide substitutes, but can&#8217;t replace what tables already do.
</p>
<p>
And please, let&#8217;s put the whole &#8220;<code>display: table-cell</code> will grant those abilities through CSS&#8221; to rest.  Saying that is just saying &#8220;use tables for layout&#8221; with different words.  Turning a bunch of <code>div</code>s or list items or whatever into table-role boxes is no better than just using table markup in the first place, and it&#8217;s arguably worse.  Using element names other than <code>table</code> and <code>td</code> to create layout tables, and then claiming it&#8217;s not using tables for layout, borders on self-deception.
</p>
<p>
Not to mention doing things that way means you&#8217;re doing your layout in a highly source-order-dependent fashion, which was one of the things about table layout we were trying to get away from in the first place.
</p>
<p>
So how do we get really powerful source-order-independent layout?  I wish I knew.  The <a href="http://www.w3.org/TR/css3-layout/">Advanced Layout module</a> has been sitting around for a while now, and even if you&#8217;re a fan of defining layout as ASCII art&#8212;which I find repels and appeals in equal measure, but that&#8217;s probably just me&#8212;there appears to be close to zero implementor interest.  So how do we get those abilities in a form that implementors will, y&#8217;know, <em>implement</em>?  I don&#8217;t know.  I don&#8217;t <em>care</em>.  We just need it, and have needed it for a good decade or so.  Without it, CSS is a styling language but not a layout language.  We&#8217;ve bent it into being something close to a layout language, which is nice but not really ideal.
</p>
<p>
Maybe CSS isn&#8217;t the place for this.  Maybe there needs to be a new layout language that can be defined and implemented without regard to the constraints of the existing CSS syntax rules, without worrying about backwards compatibility.  Maybe that way we can not only get strong layout but also arbitrary shapes, thus leaving behind the rectangular prison that&#8217;s defined the web for almost two decades.
</p>
<p>
I don&#8217;t have a concrete idea to propose here, because it&#8217;s not up to us any more.  A solution was worked out over the course of several years and then found wanting by the implementors.  Really, it&#8217;s up to the implementors to figure it out now.  I personally would like to just lock the browser teams from Microsoft, Mozilla, Opera, and Apple in a room and not let them out until they&#8217;ve defined something that works and they&#8217;ve all agreed to implement soonest.  I might even supply food and water.
</p>
<p>
And yes, I just advocated doing this outside the W3C process.  Why wouldn&#8217;t I?  The process has, in the last decade, not produced anything even remotely resembling an answer to this problem.  Time to try another path and see if it gets any closer to the goal.
</p>
<p>
No doubt someone&#8217;s going to spin this as &#8220;See, even noted standards zealot Eric Meyer now says CSS is flawed!&#8221;&#8212;only they&#8217;ll be wrong because this isn&#8217;t a <em>now</em> thing.  I&#8217;ve been saying this for years in interviews, in person, and in general.  Any time someone asks me what CSS is missing or should do better, the answer has always been a variant on &#8220;a strong layout system&#8221;.  I&#8217;ve been saying it for at least a decade.  So I&#8217;m not saying it <em>now</em>.  I&#8217;m saying it <em>again</em>.  And again and again and again and&#8230;
</p>
<p>
If I sound frustrated, it&#8217;s because I am, and have been for a good long while.  I&#8217;m not the only one.  It rankles to have CSS be, as Winston Churchill would have put it, the worst form of layout except for all the others that have been tried.
</p></div>

</div>

</div>
<p style="font-size: 90%; text-align: right; margin-top: 0.5em; padding-top: 0;">(If you care, there's even an <a href="/eric/thoughts/page/2/">archive of previous thoughts</a>...)</p>

</div><div id="extra"><div class="panel" id="archipelago"><h4>Identity Archipelago</h4><ul><li><a href="http://flickr.com/photos/meyerweb/" rel="me">Flickr</a></li><li><a href="http://twitter.com/meyerweb/" rel="me">Twitter</a></li><li><a href="http://dopplr.com/traveller/meyerweb">Dopplr</a></li><li><a href="http://www.linkedin.com/in/meyerweb" rel="me">LinkedIn</a></li><li><a href="http://technorati.com/profile/emeyer" rel="me">Technorati</a></li></ul></div><div class="panel" id="pointers"><h4>Projects Elsewhere</h4><ul><li><a href="http://aneventapart.com/">An Event Apart</a></li><li><a href="http://complexspiral.com/">Complex Spiral Consulting</a></li><li><a href="http://www.webassist.com/go/css/emeyer/">CSS Sculptor</a></li><li><a href="http://css-discuss.org/">css-discuss</a></li><li><a href="http://microformats.org/">Microformats</a></li><li><a href="http://s5project.org/">S5</a></li></ul></div><div class="panel" id="tour"><ul><li><a href="http://fray.com/issue3/"><img src="http://fray.com/images/i3c.gif" alt="Fray Contributor (Issue 3: Sex &amp; Death)" /></a></li><!-- <li><a href="http://www.webassist.com/go/css/emeyer/"><img src="/pix/CS_ad_180x109.jpg" alt="CSS Sculptor for Dreamweaver" style="max-width: 100%;" /></a></li> --></ul></div><div class="panel">
<h4>Recently Tweeted</h4>
<p class="more"><a href="http://twitter.com/meyerweb">see more</a></p>
<p>Saw a temporary license plate with expiration date MAR3010 and thought of <a href="http://twitter.com/t">@t</a>. <small>&#8211;tweeted 9 hours, 14 minutes ago</small></p>
</div><div id="sideblog" class="panel">
<h4>Distractions</h4>
<p class="more">
<a href="/eric/thoughts/recent-links/">archive</a>
</p>
<ul>
<li><a href="http://tweetagewasteland.com/2010/03/my-head-is-in-the-cloud/" title="March 18 | &#8220;I sense that my addiction to the realtime stream is only making room for the consumption of a faster stream.&#8221;">My Head is in the Cloud</a> <small>[via <a href="http://daringfireball.net/">John</a>]</small></li>
<li><a href="http://8bitnyc.com/" title="March 17 | All of a sudden I want to establish a mission in Central Park and negotiate with the natives for gold and food.">8-Bit NYC</a></li>
<li><a href="http://www.youtube.com/watch?v=nFicqklGuB0&amp;feature=player_embedded" title="March 12 | Wry comment expressing my appreciation of the creative derivativeness of this video and its uncanny accuracy in mocking common tropes.">Academy Award Winning Movie Trailer</a></li>
<li><a href="http://www.youtube.com/watch?v=414TmP12WAU" title="March 9 | &#8220;Apple juice&#8230; for half price!&#8221;  More like twice PRICELESS.  (Note: If you&#8217;re at work, don your headphones.)">Happy in Paraguay</a> <small>[via <a href="http://unstoppablerobotninja.com/">Ethan</a>]</small></li>
<li><a href="http://www.youtube.com/watch?v=9V5ubAOeOBk&amp;feature=player_embedded" title="February 10 | This is approximately the best thing ever.">U900 -Walk Don&#8217;t Run (Isogabamaware)</a></li>
<li><a href="http://www.456bereastreet.com/archive/201002/sifr_default_css_hides_content_from_at_least_one_screen_reader/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A 456bereastreet %28456 Berea Street%29" title="February 8 | -9999px comes through again, but I really wish we were beyond that kind of thing.">sIFR default CSS hides content from at least one screen reader</a></li>
<li><a href="http://www.macosxhints.com/article.php?story=20100117064356428" title="February 8 | Storing this for future use.">Take a picture with the iSight camera when a folder is opened</a></li>
<li><a href="http://mingle2.com/blog/view/web-developer-mind" title="February 4 | Mostly valid.  (SEE WHAT I DID THERE?)">The Mind of a Web Developer: An Illustrated Diagram</a></li>
<li><a href="http://www.theonion.com/content/news/science_channel_refuses_to_dumb" title="January 28 | &#8220;Punkin Chunkin, for Christ&#8217;s sake&#8230; What more do you people want?&#8221;">Science Channel Refuses To Dumb Down Science Any Further</a></li>
<li><a href="http://www.mailchimp.com/blog/project-omnivore-declassified/" title="January 27 | Sounds like quite a feat.  But I wonder how we&#8217;d feel if Microsoft or Google announced the same kind of thing on their e-mail services.">MailChimp&#8217;s Project Omnivore: Declassified</a></li>
<li><a href="http://www.politifact.com/truth-o-meter/statements/2010/jan/25/carolyn-maloney/congresswoman-says-democratic-presidents-create-mo/" title="January 26 | &#8220;Obviously, luck matters a lot, but when there is a consistent pattern over more than 60 years, it starts to look like more than just luck.&#8221;">Congresswoman says Democratic presidents create more private-sector jobs</a></li>
<li><a href="http://www.ted.com/talks/taylor_mali_what_teachers_make.html" title="January 25 | Truth.">Taylor Mali: What teachers make</a></li>
<li><a href="http://notebook.johnmartz.com/how-websites-work?c=1" title="January 22 | At last, the truth is out and I can stop pretending:  beatific monkeys are what makes it all go.">How websites work</a></li>
</ul>
</div>
<div class="panel" id="advisory">
<div class="guarded">
<a href="http://blogadvisorysystem.com/"><img src="/pix/bas/guarded.png" alt="Blog Advisory System Alert Level: Guarded"></a>
</div>
</div>

<div class="panel" id="excuse">
<h4>The <a href="/feeds/excuse/">excuse of the day</a> is</h4>
<p>Internet 1 traffic is being routed onto Internet 2</p>
</div>

<div class="panel" id="extras">
<h4>Extras</h4>
<ul>
<li><a href="/feeds/">Feeds</a> &#8226;</li>
<li><a href="/eric/faq.html">FAQ</a> &#8226;</li>
<li><a href="/family.html">Family</a></li>
</ul>
</div>

</div>

<div id="navigate">
<h4>Navigation</h4>
<ul id="navlinks">
<li id="archLink"><a href="/eric/thoughts/">Archives</a></li>
<li id="cssLink"><a href="/eric/css/">CSS</a></li>
<li id="toolsLink"><a href="/eric/tools/">Toolbox</a></li>
<li id="writeLink"><a href="/eric/writing.html">Writing</a></li>
<li id="speakLink"><a href="/eric/talks/">Speaking</a></li>
<li id="otherLink"><a href="/other/">Leftovers</a></li>
<li id="aboutsite"><a href="/ui/about.html">About this site</a></li>
</ul>
</div>

<div id="footer">
<p class="sosumi">All contents of this site, unless otherwise noted, are &copy;1995-2008 <strong>Eric A. and Kathryn S. Meyer</strong>.  All Rights Reserved.</p>
<p>"<a href="/eric/thoughts/">Thoughts From Eric</a>" is powered by the &uuml;bercool <a href="http://wordpress.org/">WordPress</a></p>
</div>
</body>
</html>
