A much better rant on CSS general sulkiness: http://www.raizlabs.com/blog/2006/09/25/ten-reasons-why-css-...
You could make similar complaints about insert your favorite language/framework here.
If you want to make webpages, you're pretty much stuck with CSS for the foreseeable future. Better to promote best practice rather than writing off the entire language.
Sure, they should be used with care, but !important is actually really useful in responsive webdesign.
…I've never seen this notation. I've always seen pseudos with just one colon.
Some quick testing in Textmate reveals that this does, indeed, work, as does the single colon I've always been using. Triple colons don't work.
And this only works for pseudo elements; pseudo classes only work with single colons.
At least in Webkit; I didn't bother checking my simple test-case in Firefox, Opera, or IE.
Huh.
Practically speaking browsers will accept : for everything, possibly forever.
Uhh.. what about classes? Can you pile classes on to beat ids?
Can you pile ids to beat inline? (Well that kinda doesn't make sense).
When learning CSS, we're told to use id's whenever we're targeting a unique element that isn't meant to repeat itself, hence the #header. So we apply this rule without looking too much into it, thinking it's wrong to use a class for unique elements like that, when it's actually not.
You just lose some readability in distinguishing unique elements from repeated ones, and you need to avoid using the same unique element twice. But ultimately your styling works the way you expect it to, and leave id's for anchors and JavaScript.
Recently I've run into WordPress themes where the author doesn't grasp the cascade and resorts to using !important. Widgets embedded on third-party sites are about the only good use I've seen.