Most of the things I "hate" were already mentioned by others:
- Vendor prefixes - there are numerous solutions to these, but I'm still praying for the day I'll stop using vendor prefixes.
- Global namespace - this is probably CSS's main problem! Pre-processors like SASS and LESS solved this in a reasonable way, but introduced additional build step in our development process.
- Overspecificity - This is caused by the global namespace nature of CSS, but is still something that is ignored or not looked for in most cases.