Interesting comment from Lucas Gonze in the comments to my post regarding Lockergnome's CSS-to-Tables re-design. Incidentally, Lockergnome is in the process of moving back to CSS - good on ya! But here's what Lucas said about my pro-CSS rark-up, replicated in full:
Lockergnome went back not because it preferred tables but because they're not front-end specialist, and making design with web standards work requires one. I've had the same experience, and overall my feeling is that the web standards community has failed to do what all the other engineering communities have done.
I don't have to know about floating point wierdness of the Alpha chip to write a division operation in C, because some Alpha coder has already encapsulated his knowledge of that in a library. Not so for front end development, where the designers are keeping all this knowledge in their heads. All the game developers, Java people, XML fanatics, P2P specialists, etc have their own specialities, and you can take advantage of their work because it's bundled up in libraries.
If you folks, the front end specialists, don't encapsulate your knowledge in libraries, why should the rest of us take you seriously?
It's a good point that Lucas has made, because using CSS for layout can sometimes be just about as complex as programming in C. I remember reading about The Box Model last year and getting faint and dizzy. So why not create some re-usable libraries of CSS mark-up, to ease the burden for Joe Frontpage who wants to Do The Right Thing and design to web standards. Has it been done already? I'd like to throw that question out to the audience: please leave a comment if you know of some potential solutions.
Alexw from Sitepoint.com pointed out in my comments, in response to Lucas, that Dean Edwards has created something akin to a CSS library. It's called IE7 and (from what I gather) it's an extra CSS file that can be added to your webpage, which will convert standards-compliant CSS that Internet Explorer doesn't normally render correctly into CSS that IE can understand. So essentially it enables IE to render standards-compliant CSS correctly and therefore saves web designers the trouble of creating hacks for IE browsers. I hope I got that right? But the point is, as Alex said, maybe this is an example of a CSS "library" - a bunch of code bundled into a nice easy insert, to save re-inventing the wheel for each design project.
On a similar theme I read tonight a rather brave article on the SXSW 2004 Community Blog, which points out that most of the SXSW Web Award winners are not CSS/XHTML websites (the main exception was the fantastic CSS Zen Garden). In fact over half of them are Flash sites! Unfortunately this situation is fairly typical, it seems Flash sites always win all the web design awards no matter how inaccessible and unsemantic they are.
But the writer of this article, Jon Wiley, does ask a very good question: how come a good proportion of the SXSW panels were about CSS, but hardly any of the Award winners were CSS sites? Well, given what I've written about tonight - could it be that most web designers still don't fully understand how to create a CSS layout? There's no shame in that, because as I mentioned above CSS layouts are pretty complex animals. I know I haven't fully groked them yet - which is why I've set myself the challenge of redesigning this site from scratch.
Another reason perhaps to componentize CSS, in order to make it easy to code Web Standards-compliant websites. Whadayareckon?