Why isn't there a CSS
Browser Selector. I know that in theory, standards such as CSS, (x)HTML, etc. are there to make it so we don't have to rely on something like a browser selector, but in the real world, we are reduced to using hacks and browser sniffing to get the job done.
Browser sniffing is sub-standard (excuse the pun), because we cannot rely on the user-agent string. But if we are going to browser sniff, then sniffing via Javascript is even worse.
Hacks are sub-standard (ditto) because they depend on comments to tell you what is going on. Imagine trying to figure out a voice-family hack if you aren't familiar with it at all.
Instead imagine if you could just do something like this:
@band-pass[ie5] { margin: 0; padding: 10 } /* This style for IE 5 only */
@low-pass[ie6] { margin:0 } /* this style for IE 6 and lower */
@band-reject[webkit] { margin: 0 } /* for every browser except webkit/safari*/
The closest to an ideal solution is some kind of pre-processing of a CSS file, so that you could use a @band-pass[ie5] style syntax, and it would transform that into the relevant CSS bandpass hack for that browser.
Update: Sorry about the... erm... substandard title. It is fixed now.