It doesn't take long to realise when using css that certain things are not cross-browser friendly.
For example, when I wanted a semi-transparent png I had to give IE something ridiculous like:
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(...);
I've had problems with positioning and pseudo-selectors etc. as anyone who has played around with css for more than 20 minutes will have encountered.
- To solve problems sometimes I start out deciding that I will only do what all the browsers support and support in the same (or at least a fairly similar) way.
- Other times I just chuck in conditional comments and give IE it's own stylesheet.
- And then on other occasions I simply use css hacks to exclude certain browsers from reading particular bits (like the old "
* html {}
" or "html>/**/body {}
")
So my question is, which is the best option. The first is pretty limiting and you end up developing for what IE6 is capable of doing but the other two feel a bit mucky. So which is the bets in terms of programming practices, rendering efficiency etc.?