

I understand there are constraints and pressures in any project, and a release of the most widely used browser in the world must be a mind bogglingly complicated undertaking, so let’s say IE6 was unavoidably compromised. I’d like to think that in that position I would have advocated for a more standards compliant core product. But it begs the question as to why you’d be satisfied with a browser release that leaves so many standards insufficiently implemented that such a backdoor is necessary? I’m sure back when IE6 was being created they never thought the use of these hacks would be so ubiquitous. I’m sure the initial justification would have been that it is doing a service to the web community by giving them a handy backdoor to manipulate the rendering behaviour in the *rare* case when it might be needed. I sometimes like to do a thought experiment where I put myself in the shoes of the developers at Microsoft who are responsible for IE and ask myself how I’d approach the requirement to implement those IE conditional statements and version specific CSS hacks in the rendering engine. However the fact that we are still having to use these hacks makes me upset.

This was mainly because IE was overwhelmingly the dominant browser and however things rendered in IE was a practical (if not a de facto) standard. They solved the occasional inconsistency at a time in the web’s history when rendering engines had a forgiving attitude towards weak standards compliance. I remember being initially relieved at finding these hacks years ago. This is a clever way and it doesn’t cause any validation errors. So to target specific IE version, simply use the IE class as the parent selector (eg.ie6. Basicially, it checks if it is IE, then add a class to the html tag. The third option, which was founded by Paul Irish, is to add an CSS class with the IE version to the HTML tag by using IE conditional comments.

IE conditional comment is probably the most commonly used to fix the IE bugs for specific versions (IE6, IE7, IE8). View Demo IE Specific #1 IE Conditional Comments But there are more ways than the conditional comments… We typically use IE conditional comments to fix the IE issues. It gets frustrating when different versions of Explorer displays web pages differently due to the inconsistent rendering engine. As much as we don’t like to deal with the IE bugs, we still have to face it because your boss and visitors are still using Explorer.
