Определите, если в режиме совместимости IE8 с использованием условных условий
Вопрос
Я понимаю из моих исследований, что IE8 делает раздражающие вещи, такие как принуждение в режим IE7 для местных хостов интрасети и местных диапазонов IP. Я понимаю из предыдущий вопрос что нет способа использовать условные операторы, независимо от того, является ли IE8 рендеринга в режиме IE8 или IE7, он все равно будет только использовать <!--[if IE 8]>
Условный.
Поскольку этот вопрос был задан некоторое время назад (во время бета-фазы IE8 по взгляду вещей) мне интересно, изменилось ли это или если есть другой путь используя условные Чтобы определить, если IE8 находится в режиме совместимости.
Спасибо!
Решение
Нет, вы не можете сделать это с помощью условных условий.
Лучший способ сделать это - использовать свойство Document.documentMode, как описано в ссылке Pekka Posted. Как я могу обнаружить, если IE8 работает в представлении совместимости?
Другие советы
В конце концов, я решил сочетать две общие стратегии для решения этой ошибки.
Я создал файл переопределения CSS, который я импортирую с помощью условных комментариев. В случае IE 8 или 9, однако, это переопределение не выглядит так хорошо, поэтому я включаю в себя «силу т.е. в последний переключатель заголовка рендеринга», как показано ниже.
<!--[if lte IE 7]>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="stylesheet" type="text/css" href="/Content/IE7Overrides.csss" />
<![endif]-->
Это обеспечивает IE7 с приличным Failsafe, но усиливает IE8 и IE9, чтобы показать его в последнем браузере, который будет правильно отображать таблицу на основе CSS.