Aww, Dave…

Dave Winer’s Scripting News is one of the most consistently interesting and useful sites on the Web. (Heck, I link to it from my home page!) His highly clueful observations, even when they seem a little off-the-wall, are almost always on the mark in one important way or another.

So what’s up with his boneheaded crusade against Cascading Style Sheets (CSS)?

I’ve been designing Web sites since 1995, and if there’s one thing I know it’s that page layout on the Web is a royal pain-in-the-butt. Over the years, we’ve developed a number of hacks involving nested TABLE tags and 1-pixel GIFs and so on to make things look Just So. But it never looks EXACTLY the way we’d like. That’s the first verse of the Tao of the Web — the wise man learns to let go of the desire to create precise layouts on the Web. That stuff’s best left for print.

And then comes the worst part — your design changes. Suddenly you’ve got ten thousand pages to update, a hundred thousand TABLE tags to edit, and a million 1-pixel GIFs to pull out. It’s the sort of thing that gives your average Web developer night sweats. (Well, that and the idea of missing the next Star Wars prequel, but I digress.)

That’s where CSS steps in and saves your sorry butt. Instead of doing that markup tediously page by page, you just define a set of rules in a single document — a stylesheet (hence the name) — and link that document to each of your pages. Then, when the design changes, you just change the one document and presto, your whole site has automagically updated. Woohoo!

Well, in reality it’s never been quite that simple. Boneheaded browser vendors have taken their sweet time about implementing CSS support properly — any version of Internet Explorer before 5.5 is pretty much CSS-unaware, and Netscape 4.x has almost laughable support for the standard. So designers have held off on using CSS, fearful of alienating their users.

Thankfully, though, the world is changing. Netscape has seen the error of its ways and built Netscape 6 around the so-called “Gecko” engine, which has full support for CSS. (If you haven’t tried NS6, or, even better, its open-source cousin Mozilla, you owe it to yourself to do so — they are excellent browsers, more than good enough to wash the foul aftertaste of Netscape 4 out of your mouth.) IE 5.5 and 6 both have excellent CSS support, if not as good as Gecko’s. And the plucky new entry in the browser war, Norway’s Opera 6, has the best standards support of them all.

So the world is catching up with the standard (finally). And yet Dave has been ranting for a week now about the deficiencies of CSS. Dave, we know browser support is incomplete. We know most designers haven’t learned CSS yet. And we know that a quick table hack may seem easier than learning a whole new syntax, writing a stylesheet, etc. But we want a world where none of these things are true — and we’re close, we’re so darned close you can practically taste it. So why fight the currents, rather than ride them, when they are going where you want to go?

Hey, don’t get me wrong, I still read Scripting News every day. But even the smartest people can be wrong every now and then, and I’m calling Dave out on this one. CSS is a technology whose time has come.