Listen to AutisticCuckoo on this one - spot on. It’s presentation, and presentation has NO place in the markup.
It’s why I generally say avoid those rubbish CSS frameworks as well (Grid, YUI, etc), since they use presentational classes so to restyle you’d have to edit the markup anyways - DEFEATS THE POINT of using CSS in the first place! If you are going to be adding classes that say what things look like – “smalltext”, “floatLeft”, “centered”, “width960” for example, the question becomes what the hell are you even bothering with CSS for in the first place?
You also have to remember that more code in the CSS and less in the HTML takes advantage of caching models if said styling is applied across multiple pages - just as AlexDawson said. The more that’s ‘common’ to every page on your site you move into the CSS, the faster all your subpages will load… you can even pre-cache sub-page layouts by loading it with the home page.
It also plays well with CMS - the less markup the CMS has to deal with outputting, the more time it can put towards actually processing data. Inlining presentation in the markup is the enemy of clean coding. (were that most major CMS systems would realize this!)
Lemme give you a real world example of some old HTML 3.2, and how I’d write that today.
The original code vomited up by an old WYSIWYG called “hotmetal” circa 2001
<CENTER><B><SPAN STYLE="Font-Size : 14pt"><FONT FACE="Arial, Helvetica">Clan and Inner Sphere Differences</FONT></SPAN></B></CENTER><SPAN STYLE="Font-Size : 10pt"><FONT FACE="Arial, Helvetica"><BR>
<BR>
Like many groups in the Inner Sphere, individual Clans see themselves as significantly different from their fellows.
Though minor from an Inner Sphere perspective, cultural differences among the Clans frequently threaten to explode
into major rifts. Throughout Clan history, they have prompted everything from long-standing feuds to mini-civil
wars to outright obliteration.<BR>
<BR>
The realms of the Inner Sphere are far more different from each other than are any two Clans. Some are virtually
bubbling over with different cultural groups and political factions. Others hew sharply to a single cultural pattern
and centralized power structure. Yet even the most freewheeling society possesses some sense of unified identity,
and even the least tolerant realm peacefully incorporates nonconformist elements.<BR>
<BR>
How that would be written today using modern semantic markup:
<h2>
Clan and Inner Sphere Differences
</h2>
<p>
Like many groups in the Inner Sphere, individual Clans see themselves as significantly different from their fellows. Though minor from an Inner Sphere perspective, cultural differences among the Clans frequently threaten to explode into major rifts. Throughout Clan history, they have prompted everything from long-standing feuds to mini-civil wars to outright obliteration.
</p><p>
The realms of the Inner Sphere are far more different from each other than are any two Clans. Some are virtually bubbling over with different cultural groups and political factions. Others hew sharply to a single cultural pattern and centralized power structure. Yet even the most freewheeling society possesses some sense of unified identity, and even the least tolerant realm peacefully incorporates nonconformist elements.
</p>
Gee, which one’s less code here?
Your html should say what things ARE, NOT what they look like.… I extend this even to my classes and ID’s - say what the element IS, NOT what you want for appearance unless it’s a presentational hook on a semantically meaningless tag like DIV or SPAN… and even then I might use ‘top’ and ‘bottom’, but never ‘left’ or ‘right’ - but then I often write skins that need to work both LTR and RTL.
Presentational markup was a bad idea thrown in as a stopgap by netscape and microsoft, and we’ve been trying to backpedal from the disaster HTML 3.2 gave us by adopting those ever since. (though it seems like those lessons are completely forgotten in the train wreck known as HTML 5… literally it looks like it’s going to be the new HTML 3.2). The tags and attributes deprecated in strict are removed because that **** has no place in your markup. Some of it is just shoving behaviors the user might not want down their throat (TARGET for example), but the lions share of them - CENTER, FONT, ALIGN, VALIGN, BGCOLOR, COLOR - are what leads to people using tens and even hundreds of K of markup to deliver 2-3k of actual text content.
I see it every day people with 60-80k of presentational outdated half-assed markup. Even when they TRY to use modern techniques they don’t “GET IT” - as Dan used to say the people who used to make endless nested bloated tables now just make endless nested bloated div’s, classes and ID’s – net change? ZERO!