CSS is MUCH lighter and easier to use. It also separates design from content, so you can change the look of the site on ALL of your pages by changing the CSS once. See csszengarden.com for examples -- each template is the exact same page, only change is the css file.
Here's an example using a table (not for layout, mind you). Imagine you have this table listed on your site multiple times.
Code:
<table width="600" cellpadding="0" cellspacing="0" border="1">
<tr>
<td width="300" BGCOLOR="#F7F7F7" align="right"><font face="verdana" size="2">Content</font></td>
<td width="300" BGCOLOR="#F7F7F7" align="right"><font face="verdana" size="2">Content 2</font></td>
</tr>
</table>
Not too bad, but it's tedious to have to set the width, height, background color, text alignment, and font settings every single time, on ever single cell. With CSS, you can make your table look like this:
Code:
<table class="content">
<tr>
<td>Content</td>
<td>Content 2</td>
</tr>
</table>
and have CSS in an external file that looks like this:
Code:
body, table, td {
font: 11px verdana;
}
.content {
width: 600px;
border: 1px solid #000;
}
.content td {
width: 300px;
background: #F7F7F7;
text-align: right;
}
for the exact same results, except the CSS Gives you MUCH better readability and smaller filesize. It may not seem like you saved much as far as code typed, but if that table were repeated on your site multiple times, you would have just saved yourself a huge amount of code. Or let's say you want to change the font from verdana to tahoma. Rather than changing every instance hundreds of time on each page, you just change it once in the stylesheet and voila! Your whole site is now in tahoma.
And I guess being a SEO forum, I should also mention the SEO benefits. Imagine you're a spider trying to access content. Much easier in the CSS example than the non-CSS example as there is less code to sift through to get to the meat of the site . . . content!