Komentarze warunkowe (ang. Conditional comment) są to instrukcje warunkowe interpretowane przez przeglądarkę Microsoft Internet Explorer w kodzie HTML. Warunkowe komentarze pojawiły się w tym programie od wersji 5 i są obsługiwane przez kolejne z nich. Rozwiązanie te zostało wprowadzone ze względu na odmienny sposoby interpretacji kodu HTML przez tę przeglądarkę - przy czym należy podkreślić, że poszczególne wersje IE również nie działają identycznie (niestety przeglądarki innych producentów też nie interpretują kodu HTML/CSS w 100% zgodnie ze specyfikacjami konsorcjum W3C).
Składnia wygląda następująco:
<!--[if IE]>
<p>Tekst wyświetlany tylko w IE.</p>
<![endif]-->
Przy bardzo powszechnych problemach z jednolitym wyglądem szablonu strony www można zastosować osobny arkusz styl u CSS, wówczas w części HEAD należy umieścić:
<!--[if IE]>
<link href="/styl_dla_ie.css" rel="stylesheet" type="text/css" />
<![endif]-->
Tak jak już wcześniej napisałem w różnych wersjach IE ten sam kod może wyglądać różnie (klasyczna walka przy dopracowywaniu bardziej złożonych szablonów stron www), stąd można za pomocą Conditional Comments dostosować kod dla poszczególnych wersji Internet Explorera:
<!--[if IE 5]>
<link href="/styl_dla_ie5.css" rel="stylesheet" type="text/css" />
<![endif]-->
<!--[if IE 6]>
<link href="/styl_dla_ie6.css" rel="stylesheet" type="text/css" />
<![endif]-->
<!--[if gt IE 6]>
<link href="/styl_dla_nowszych_ie.css" rel="stylesheet" type="text/css" />
<![endif]-->
Zapis if gt IE 6 oznacza zastosowanie powyższej instrukcji dla wersji przeglądarek wyższych niż 6 (greater than). Można użyć jeszcze innych operatorów:
- gt (greater than) = większa niż
- lt (less than) = mniejsza niż
- gte (greater than equal) = większa bądź rowna
- lte (less than equal) = mniejsza bądź równa
Dodatkowo warto przeczytać poradę Ku pamięci: IE8 obejście problemu z Conditional Comments, w której opisano jak poradzić sobie w przypadku, gdy IE wyświetla na górze "pozostałość" po komentarzu "–>".