Domanda

Sembra che quando la pagina web ha

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

in modo che IE 8 emulerà IE 7, poi nella pagina web, quando non v'è

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

, allora sarà anche carico ie.css?

Cioè, è IE 8, emulando IE 7, e così il lt IE 8 sarà true?

Aggiornamento: , ma poi, la HTTP_USER_AGENT variabile lato server sarà ancora dicendo IE 8? Perché il browser va al server come IE 8, dà IE 8 come la stringa di HTTP_USER_AGENT, e poi le risposte dei server con la voglia di emulare IE 7. Quindi, se la lingua del server come PHP rileva HTTP_USER_AGENT, sarà ancora in IE 8 la modalità di compatibilità (IE 7 modalità di emulazione)?

È stato utile?

Soluzione

Questo è il punto centrale di quel meta-tag, non è vero? Nel momento in cui si dispone di questo:

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

IE8 inizia a comportarsi sul lato client come IE7:

  • Le tue pagine saranno tutti rendono come farebbero in IE7
  • I tuoi commenti condizionali rivolte qualcosa di più grande di IE8 (<!--[if lt IE 8]>) sarà anche essere letta, e il codice all'interno eseguito, in modo ie.css è caricato

Tuttavia, l'interruttore di IE7 avviene solo dopo IE8 si legge che il meta tag. Dal momento che il codice HTML viene restituito come parte della risposta, IE8 deve farne richiesta prima. Dal momento che IE8 non ha idea in anticipo che sarebbe apparso questo meta tag, la stringa user-agent invia è MSIE 8.0. PHP poi lo riconosce come IE8.

Altri suggerimenti

Se si desidera una soluzione diversa (e sono disposti ad usarlo), è possibile utilizzare jQuery per rilevare il browser (jQuery.browser). Lo fa risultato con IE7 per IE8 in modalità di compatibilità.

Se stai dicendo IE8 di emulare IE7, potete essere certi che il CSS per IE7 dovrebbe funzionare bene. Basta usare LTE al posto di 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]-->
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top