Вопрос

Кажется, что когда на веб -странице есть

<meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible' />

так что IE 8 будет эмулировать IE 7, затем на веб -странице, когда есть

<!--[if lt IE 8]> 
  <link href="http://www.example.com/stylesheets/compiled/ie.css" type="text/css" />
<![endif]-->

тогда он также будет загружаться ie.css?

То есть это IE 8, подражая IE 7, и поэтому lt IE 8 будет true?

Обновлять: Но тогда переменная на стороне сервера HTTP_USER_AGENT все еще будет говорить IE 8? Поскольку браузер идет на сервер как IE 8, дает IE 8 в качестве строки http_user_agent, а затем сервер отвечает с желанием эмулировать IE 7. Поэтому, если язык сервера, такой как PHP, обнаруживает http_user_agent, он все равно будет IE 8 в Режим совместимости (т.е. режим эмуляции 7)?

Это было полезно?

Решение

В этом весь смысл этого метага, не так ли? В тот момент, когда у вас есть это:

<meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible' />

IE8 начинает вести себя на стороне клиента как IE7:

  • Все ваши страницы будут отображаться, как и в IE7
  • Ваши условные комментарии, нацеленные на что -либо старше, чем IE8 (<!--[if lt IE 8]>) также будет прочитано, а код внутри выполнен, поэтому ie.css является загружен

Тем не менее, переключатель IE7 происходит только после того, как IE8 читает этот метатец. Поскольку ваш HTML возвращается как часть ответа, IE8 должен сначала запросить его. Поскольку IE8 заранее не имеет представления о том, что этот метатец появится, строка пользователя-агента, которую он отправляет, является MSIE 8.0. Анкет Затем PHP распознает это как IE8.

Другие советы

Если вы хотите другое решение (и готовы его использовать), вы можете использовать jQuery для обнаружения браузера (jquery.browser). Это происходит с IE7 для IE8 в режиме совместимости.

Если вы говорите IE8 для эмуляции IE7, вы можете поверить, что ваш CSS для IE7 должен работать правильно. Просто используйте LTE вместо LT.

<!--[if IE 8]> 
   <meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible' />
<![endif]-->
<!--[if lte IE 8]> 
  <link href="http://www.example.com/stylesheets/compiled/ie.css" type="text/css" />
<![endif]-->
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top