Есть три способа сделать это,
Условные комментарии IE
Условный комментарий IE, вероятно, наиболее часто используется для исправления ошибок IE для определенных версий (IE6, IE7, IE8). Ниже приведен пример кода для различных версий Internet Explorer:
<!--[if IE 8]> = IE8
<!--[if lt IE 8]> = IE7 or below
<!--[if gte IE 8]> = greater than or equal to IE8
<!--[if IE 8]>
<style type="text/css">
/* css for IE 8 */
</style>
<![endif]-->
<!--[if lt IE 8]>
<link href="ie7.css" rel="stylesheet" type="text/css" />
<![endif]-->
Правила CSS, специфичные для Explorer (взломы IE CSS)
Еще один вариант - объявить правила CSS, которые могут быть прочитаны только Проводником. Например, добавьте звездочку (*), прежде чем свойство CSS будет нацелено на IE7, или добавьте подчеркивание, прежде чем свойство нацелится на IE6. Однако этот метод не рекомендуется, так как они не являются допустимым синтаксисом CSS.
IE8 or below: to write CSS rules specificially to IE8 or below, add a backslash and 9 (\9) at the end before the semicolon.
IE7 or below: add an asterisk (*) before the CSS property.
IE6: add an underscore (_) before the property.
.box {
background: gray; /* standard */
background: pink\9; /* IE 8 and below */
*background: green; /* IE 7 and below */
_background: blue; /* IE 6 */
}
Условный класс HTML
Третий вариант, который был основан Полом Айришем, - это добавить класс CSS с версией IE в тег HTML с помощью условных комментариев IE. По сути, он проверяет, является ли он IE, а затем добавляет класс в тег html. Поэтому для определения конкретной версии IE просто используйте класс IE в качестве родительского селектора (например, .ie6 .box). Это умный способ, который не вызывает ошибок валидации.
<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]> <html class="ie7"> <![endif]-->
<!--[if IE 8 ]> <html class="ie8"> <![endif]-->
<!--[if IE 9 ]> <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html> <!--<![endif]-->