Pregunta

Parece que cuando la página web tiene

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

de modo que el IE 8 emulará IE 7, y más tarde en el sitio Web o cuando hay

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

entonces también será ie.css carga?

Es decir, es el IE 8, emulando IE 7, por lo que el lt IE 8 será true?

Actualización: , pero luego, la variable del lado del servidor HTTP_USER_AGENT se sigue diciendo IE 8? Debido a que el navegador va al servidor como el IE 8, da IE 8 como la cadena de HTTP_USER_AGENT, y luego las respuestas del servidor con ganas de emular IE 7. Así que si el idioma del servidor como PHP detecta HTTP_USER_AGENT, todavía estarán en IE 8 el modo de compatibilidad (IE 7 modo de emulación)?

¿Fue útil?

Solución

Eso es todo el punto de que la etiqueta meta, ¿verdad? En el momento en que tenga esta:

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

IE8 comienza a comportarse en el lado del cliente como Internet Explorer 7:

  • Sus páginas todos rendirán como lo harían en IE7
  • Sus comentarios condicionales de segmentación nada más viejo que IE8 (<!--[if lt IE 8]>) también se lee, y el código dentro ejecutada, por lo ie.css es cargada

Sin embargo, el interruptor que IE7 sólo tiene lugar después de que IE8 lee la etiqueta meta. Desde su HTML se devuelve como parte de la respuesta, IE8 tiene que solicitar primero. Desde IE8 no tiene ni idea de antemano que aparecería esta etiqueta meta, la cadena de agente de usuario que envía es MSIE 8.0. PHP entonces lo reconoce como IE8.

Otros consejos

Si desea una solución diferente (y están dispuestos a usarlo), se puede utilizar jQuery para detectar el navegador (jQuery.browser). Lo hace resultado con IE7 para IE8 en modo de compatibilidad.

Si usted está diciendo a IE8 para emular IE7, puede confiar en que el CSS para IE7 debería funcionar bien. Sólo tiene que utilizar LTE en lugar de 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]-->
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top