Если вам нужно столкнуться только с одной вещью, вы также можете использовать:
<!--[if IE 7 ]> <html class= "ie7"> <![endif]-->
<!--[if IE 8 ]> <html class= "ie8"> <![endif]-->
Это даст элементу html класс .ie7 или .ie8 в зависимости от того, что они используют или что вы указали. Затем вы можете настроить таргетинг на все, что хотите переопределить, например:
.ie7 #promo {margin-left:-1px;}
или
.ie8 #promo {margin-left:-3px;}
и цель их индивидуально. Вы также можете указать правило для IE 9.
И включите его в основную таблицу стилей рядом с нижней частью. Это избавляет вас от необходимости создавать множество различных таблиц стилей.
Поскольку IE9 не выполняет рендеринг, как IE9, я думаю, что Internet Explorer фактически превратится в предыдущий рендерер, если он установлен по причинам, которые мне совершенно неизвестны. Я думаю, что Пол Ирландский упоминает об этом на своем выступлении на HTML5 Boilerplate на сайте onTwik .
Они используют некоторый код в своем файле .htaccess
, чтобы заставить IE использовать самый последний механизм рендеринга, и фактически заставит IE использовать движок Chrome, если он установлен:
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
BrowserMatch MSIE ie
Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
</IfModule>
</IfModule>