Question 2 – CSS Efficiency

The second question this week is from Guy Huntley:

“Comparing CSS to classic Tables/Frames – how much less time does CSS take to create a page? How much less time to modify a page? How much more efficient is CSS vs. classic techniques, and can it be quantified?”

Hm. Now keep in mind that it’s very difficult to estimate exactly how much time it would take to create a page in CSS vs. older methods without seeing the design you have in mind, and it’s specific issues and requirements.

Generally speaking, it doesn’t take me much more time to flesh out a page in CSS than it would in traditional table layouts. If you’re new to CSS, then sure- it could be a bit hair-raising your first project or two, but any new technique does take a bit of breaking-in to get used to, IMHO. CSS is no different.

Now that’s my take on CSS for creating new designs- but when it comes to updating them? CSS is LIGHT YEARS more efficient, no question whatsoever. If your design markup is scattered throughout your content in each individual HTML file, you’re going to have to touch every file that uses the design to update it. Sure, templating systems and cunning use of #include files can reduce this nightmare, but what’s not to love about the CSS update process- tweak a stylesheet or two (there’s usually not more than 3 or 4 stylesheets in my projects), watch the entire site suck up the changes in seconds. Simple. I would estimate that even if I didn’t save ANY time (or even lost time) creating a new page in CSS as opposed to table layouts, all the iterative updates to ‘child’ pages is so much easier in CSS that at the end of the day I’ve spent less time working with the CSS version.

(And surprise- you can also play those old-school-but-quite-valid #include and template server-side trickery with CSS layouts as well, further reducing your time required to touch all the assets on your site. It’s really a win-win.)

My recommendation, spend the time to tackle the CSS learning curve, and move forward instead of backwards. You’ll start to see the benefits of CSS almost immediately- and whether or not they’re quantifiable to your clients and projects is really up to you. I’ll never go back to purely table-based designs, personally- and suspect after the initial pain of learning a new skillset is past you, that you’ll agree.

You’ll note I don’t mention frames anywhere above- and for good reason. I don’t use them, and try to steer my clients away from them at all costs. Why? The headaches they present in regards to search engines, bookmarking, and general navigation/usability are a far worse nightmare than learning CSS- and if you throw in a bit of cunning AJAX/Javascript trickery, you can make a very usable single-page that achieves the same goals.
Well, that’s my opinion, at least. Feel free to rip on it in comments if you disagree, and I’ll see you tomorrow for question #3. ;-)