Определите, если в режиме совместимости IE8 с использованием условных условий

StackOverflow https://stackoverflow.com/questions/3140116

Вопрос

Я понимаю из моих исследований, что 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top