If you have multiple IEs installed on one system the conditional comments will view each install as the highest installed version.
This page has been translated into Brazilian Portuguese, Simplified Chinese, Russian, Hungarian, Romanian, Farsi, Italian, and Vietnamese.
Conditional comments only work in IE, and are thus excellently suited to give special instructions meant only for IE. They are supported from IE 5 up until IE9 (inclusive).
Older IE versions frequently need some extra CSS in order to show your pages right. Conditional comments are the best way to add this CSS, since the system is explicitly designed for this use case.
If you need special styles for IE10 or up you’ll have to find another method, since conditional comments were disabled in IE10. However, these versions are much less buggy than the earlier ones.
Conditional comments work as follows:
<!--[if IE 6]> Special instructions for IE 6 here <![endif]-->
<!-- -->
). Therefore all other
browsers will see them as normal comments and will ignore them entirely.<!--[if IE]>
syntax, resolves the if
and parses the content of the conditional comment as if it were normal
page content.<link>
tag in the conditional comment
referring to an extra style sheet.Below I added a lot of conditional comments that print out messages according to your IE version.
Note that conditional comments were removed from IE10, so IE10 and up will not understand the test.
Below are a few conditional comments that reveal the IE version you're using.
According to the conditional comment this is not IE 5-9
The syntax I use is:
<p class="accent"> <!--[if IE]> According to the conditional comment this is IE<br /> <![endif]--> <!--[if IE 6]> According to the conditional comment this is IE 6<br /> <![endif]--> <!--[if IE 7]> According to the conditional comment this is IE 7<br /> <![endif]--> <!--[if IE 8]> According to the conditional comment this is IE 8<br /> <![endif]--> <!--[if IE 9]> According to the conditional comment this is IE 9<br /> <![endif]--> <!--[if gte IE 8]> According to the conditional comment this is IE 8 or higher<br /> <![endif]--> <!--[if lt IE 9]> According to the conditional comment this is IE lower than 9<br /> <![endif]--> <!--[if lte IE 7]> According to the conditional comment this is IE lower or equal to 7<br /> <![endif]--> <!--[if gt IE 6]> According to the conditional comment this is IE greater than 6<br /> <![endif]--> <!--[if !IE]> --> According to the conditional comment this is not IE 5-9<br /> <!-- <![endif]--> </p>
Note the special syntax:
gt
: greater thanlte
: less than or equal toAlso note the last one. It has a different syntax, and its contents are shown in all browsers that are not IE:
<!--[if !IE]> -->
Are conditional comments CSS hacks? Strictly speaking, yes, since they can serve to give special style instructions to some browsers. However, they do not rely on one browser bug to solve another one, as all true CSS hacks do. Besides, they can be used for more than CSS hacks only (though that rarely happens).
Since conditional comments are not based on a browser hack but on a deliberate feature I believe they
are safe to use. Sure, other browsers could implement conditional comments, too (though as yet none have
done so), but they're unlikely to react to the specific query <!--[if IE]>
.
I use conditional comments, though sparingly. First I see if I can find a real CSS solution to an Explorer Windows problem. If I can't, though, I don't hesitate to use them.
A reader told me IE8 and below also support the (non-standard) <comment>
tag.
<p>This is <comment>not</comment> IE.</p>
This is
This tag might be a replacement for the !IE
conditional comment, but only if you target IE8 and below.