There's been some bickering going on recently regarding CSS and its utility.
Somewhere along the line, i saw a post that claimed that HTML, in the beginning, was easy. You could just look at the source of someone else's document and know immediately know what's going on. And now, with all these new fangled standards, you need a PhD in HTML, or whatever, to understand it.
Give me a break.
I can remember developing for the web when Netscape 4 was cutting edge. There was a mentality that you needed to develop separate streams for different browsers, frames and no-frames, etc. People rarely used
<h*> tags -- they looked ugly, multi-level table nesting: a common occurrence. To me, at that time, a developer could spend hours just getting a document to look decent in ANY browser... and allowing tag soup...come on!?!
Today, in my eye, I can code a logically structured document and style it later. I actually use
<h*> tags and my paragraphs are in
<p> tags. To me, the semantics documents of today make WAY more sense than anything I developed in 1998. Why isn't my document working? Validate It! CSS gives me more options than any of the old attribute styled HTML... it's cacheable and reusable too!
As far as downloading other's work and understanding it, when developing these days, I always code for some level of readability in perl and in html. Tag soup is not readable. Using a semantic-style of html coding you can prepare a pretty readable document -- at least one that isn't riddled with piles of font tags (a major source of readability problems)! Although, people still need to take it upon themselves to label their CSS properly:
class="style1" is not readable;
class="orangetext" is. I'd compare it to naming your subs in perl.
Perhaps that's where the complexity starts. However, I don't think it takes a genius to figure it out. With anything new, there's going to be a learning curve. If you can learn HTML in the first place, I'm sure you can learn to do it the right way.
Pardon my ramblings...