Initially switching to table-less design is harder. CSS has its own quirks in every browser that can drive a developer mad.
That being said there's a few very good reasons to use a pure CSS design.
More accessible: Specifically I'm thinking mobile phones and alternative stylesheets where "turning off" a table cell completely breaks the design. This is a breeze with pure CSS
Smaller File Size: Generally speaking, a site designed with CSS is smaller than a site designed with tables
Efficient Caching: External stylesheets will cache speeding up response time for the user. For an eCommerce site every second is key.
SEO: Some may argue with this, but presenting important content first is just one of the many factors involved with on-page SEO. This is accomplished quite easy with CSS and absolute positioning.
Faster Updates: I find updating a CSS design to be much quicker than a design nested with tables. Want to completely change the look of your site? Modifying only the CSS you can get some impressive results (http://www.csszengarden.com/).
For a programmer the time spent ironing out the initial kinks can be spent better elsewhere. But for designers its necessary in this day and age to use and understand table-less designs.
Please not another advocate that uses CSSZenGarden.com as a reference. It's a great 'proof of concept' but it no longer impresses me or means anything in the real world.
Show me YOUR site, and how it can be completely changed with just a flick of the CSS switch and I'll be impressed.
Most (arguably all) CSS designs are built to accomplish 1 layout and 1 design.
Now, for more simple changes, like fonts, colors, and small layout changes CSS is the tits.
If you are using Firefox, you can use the "View->Page Style" menu to select the various stylesheets (all, except for the default one, is a type of April 1 joke).
Also, if you check the source, you'll see that the main content appears first, with the extraneous stuff (navigation, obligatory links, advertisements, etc) appear at the bottom of the page.
That being said there's a few very good reasons to use a pure CSS design.
More accessible: Specifically I'm thinking mobile phones and alternative stylesheets where "turning off" a table cell completely breaks the design. This is a breeze with pure CSS
Smaller File Size: Generally speaking, a site designed with CSS is smaller than a site designed with tables
Efficient Caching: External stylesheets will cache speeding up response time for the user. For an eCommerce site every second is key.
SEO: Some may argue with this, but presenting important content first is just one of the many factors involved with on-page SEO. This is accomplished quite easy with CSS and absolute positioning.
Faster Updates: I find updating a CSS design to be much quicker than a design nested with tables. Want to completely change the look of your site? Modifying only the CSS you can get some impressive results (http://www.csszengarden.com/).
For a programmer the time spent ironing out the initial kinks can be spent better elsewhere. But for designers its necessary in this day and age to use and understand table-less designs.