Кажется, что "IE = EmulateIE7" также сделает "" быть правдой? - PullRequest
0 голосов
/ 25 июня 2010

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

<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 врежим совместимости (режим эмуляции IE 7)?

Ответы [ 3 ]

1 голос
/ 25 июня 2010

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

<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.

0 голосов
/ 25 июня 2010

Если вы говорите 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]-->
0 голосов
/ 25 июня 2010

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

...