Yes, the biggest problem I see in CSS is REPETITION.
Why put that 20 times for every image in the page, when you can just add img {border:0} to start with? (Not picking on you in particular).
#content h1 {margin:0 20px}
#content p {margin:0 20px}
#content ul {margin:0 20px}
(I wish I was making this **** up, that's basically word for word off a site I saw, they had that for about 20 different elements). Why the hell not just put padding on #content? Duh. I insert a table, and it's 20px off the rest of it because margin wasn't just added to it all... that's just silly. Plus, it takes longer to code if you declare everything over+over again.
padding:11px;padding-left:20px
|
The amount of people that'd don't use "global declarations" is ridiculous. Just put the colour on body, the font on body, and simply change the size throughout. That way changing font means changing 1 thing, not having to find+replace because it was done 50 times. Same with link colours etc, instead of #content a {} why not just put it on a {}, then if you need a different than "normal" put #sidebar a {} etc. Same goes for h1, h2, ... you get the idea. Just common sense really (plus, quicker! easier!)