Question

Il semble que lorsque la page Web a

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

de telle sorte que IE 8 émule IE 7, puis plus tard dans la page web, quand il y a

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

il sera également le chargement ie.css?

Autrement dit, il est IE 8, émulant IE 7, et donc le lt IE 8 sera true?

Mise à jour: mais, la HTTP_USER_AGENT variable côté serveur sera toujours dire IE 8? Parce que le navigateur va au serveur comme IE 8, donne IE 8 comme la chaîne de HTTP_USER_AGENT, puis les réponses du serveur à vouloir imiter IE 7. Donc, si la langue du serveur tel que PHP détecte HTTP_USER_AGENT, il sera toujours IE 8 le mode de compatibilité (mode d'émulation IE 7)?

Était-ce utile?

La solution

C'est le point entier de cette balise meta, est-ce pas? Dès que vous avez ceci:

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

IE8 commence à se comporter sur le côté client comme IE7:

  • Vos pages seront tous rendre comme ils le feraient dans IE7
  • Vos commentaires conditionnels ciblant tout plus que IE8 (<!--[if lt IE 8]>) sera également lu, et le code intérieur exécuté, si ie.css chargé

Cependant, le commutateur IE7 a lieu seulement après IE8 lit cette balise meta. Étant donné que votre HTML est retourné dans le cadre de la réponse, IE8 doit demander d'abord. Étant donné que IE8 n'a aucune idée à l'avance que cette balise meta apparaît, la chaîne de l'agent utilisateur qu'il envoie est MSIE 8.0. PHP reconnaît alors comme IE8.

Autres conseils

Si vous voulez une autre solution (et sont prêts à l'utiliser), vous pouvez utiliser jquery pour détecter le navigateur (jQuery.browser). Il fait suite à IE7 pour IE8 en mode de compatibilité.

Si vous dire IE8 à imiter IE7, vous pouvez faire confiance que votre css pour IE7 devrait fonctionner à droite. Il suffit d'utiliser lte au lieu 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]-->
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top