Определите в режиме совместимости IE8, используя условные выражения - PullRequest
3 голосов
/ 29 июня 2010

Из моего исследования я понимаю, что IE8 действительно раздражает, например, переходит в режим IE7 для локальных хостов интрасети и локальных диапазонов IP-адресов. Я понимаю из предыдущего вопроса , что нет способа использовать условные операторы, поскольку независимо от того, выполняет ли IE8 рендеринг в режиме IE8 или IE7, он все равно будет использовать только условный <!--[if IE 8]>.

Поскольку этот вопрос был задан некоторое время назад (во время фазы бета-тестирования IE8, судя по всему), мне интересно, изменилось ли это или есть какой-то другой способ , использующий условные выражения для определения, является ли IE8 в режиме совместимости.

Спасибо!

Ответы [ 3 ]

4 голосов
/ 29 июня 2010

Нет, вы не можете сделать это, используя условные выражения.

Лучший способ сделать это - использовать свойство document.documentMode, как описано в опубликованной ссылке Pekka Как я могу определить, работает ли IE8 в режиме совместимости?

0 голосов
/ 11 октября 2012

В конце концов, я решил смешать две общие стратегии, чтобы справиться с этой ошибкой.

Я создал переопределенный CSS-файл, который я импортирую, используя условные комментарии. Однако в случае IE 8 или 9 это переопределение выглядит не так хорошо, поэтому я включаю переключатель заголовка «принудительно IE в последний режим рендеринга», как показано ниже.

<!--[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 приличную отказоустойчивость, но заставляет IE8 и IE9 показывать его в последнем браузере, который будет правильно отображать таблицу на основе CSS.

0 голосов
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...