Наиболее часто для этого используются условные комментарии - особый код, который нормальные браузеры (и валидаторы) пропускают, считая его за комментарий, а IE обрабатывает описанные в нем условия и выполняет их, если версия браузера подходит под условие, или пропускает в обратном случае.
Выглядит условный комментарий следующим образом:
Код: Выделить всё
<!--[if условие]> HTML <![endif]-->
HTML - любой HTML-код, хотя условные комментарии чаще всего используются для задания персональных css-свойств для IE, например:
Код: Выделить всё
<!--[if lte IE 6]> <style type="text/css"> #elem { width:100px; } <![endif]-->
Код: Выделить всё
<!--[if IE]> Для всех версий IE <![endif]-->
<!--[if IE 6]> Для IE6 <![endif]-->
<!--[if IE 7]> Для IE7 <![endif]-->
<!--[if gt IE 7]> Для IE старше 7й версии <![endif]-->
<!--[if gte IE 7]> Для IE старше 7й версии включительно <![endif]-->
<!--[if lt IE 7]> Для IE до 7й версии <![endif]-->
<!--[if lte IE 7]> Для IE до 7й версии включительно <![endif]-->
- IE [if IE] Единственное поддерживаемое сейчас свойство IE, равное версии Internet Explorer.
число [if IE 7] Целое или дробное число обозначающее версию браузера. Истинно если число совпадает с версией IE.
lt [if lt IE 5.5] - Меньше (less-than). Выполняется если первый аргумент меньше второго.
lte [if lte IE 6] - Меньше либо равно (less-than or equal). Выполняется если первый аргумент меньше либо равен второму.
gt [if gt IE 5] - Больше (greater-than). Выполняется если первый аргумент больше второго.
gte [if gte IE 7] - Больше либо равно (greater-than or equal).
( ) [if !(IE 7)] - Скобки позволяют выделить подвыражения в сложном выражении.
! [if !IE] - Оператор отрицания (NOT). Возвращает значение обратное логическому значению аргумента.
& [if (gt IE 5)&(lt IE 7)] - Оператор AND. Выполняется если оба подвыражения истинны.
| [if (IE 6)|(IE 7)] - Оператор OR. Выполняется если одно их подвыражений истинно.
Если у вас установлено несколько версий IE, каждый их них будет считать, что его версия равна версии самого нового IE установленного в системе, т.е. если установлены IE6 и IE7, то в IE6 условные комментарии будут работать так же как и в IE7. Исправить это можно удалив ключ IE в разделе реестра
Код: Выделить всё
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Version Vector