Détails
Que fait <meta http-equiv="X-UA-Compatible" ; content="IE=edge"> ?
Quelle est la différence si une page web commence par
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
et si une page commence par
<!DOCTYPE html>
<html>
<head>
<!-- without X-UA-Compatible meta -->
S'il n'y a pas de différence, je suppose que je peux simplement ignorer le méta-en-tête X-UA-Compatible
, puisque je veux simplement qu'elle soit rendue dans le mode le plus standard dans toutes les versions d'IE.
1374
3
October 2015 Update
Cette réponse a été postée il y a plusieurs années et maintenant la question devrait vraiment être devriez-vous même envisager d'utiliser la balise
X-UA-Compatible
sur votre site? avec les changements que Microsoft a fait à ses navigateurs (plus sur ceux-ci ci-dessous). Selon les navigateurs Microsoft que vous prenez en charge, vous n'avez peut-être pas besoin de continuer à utiliser la baliseX-UA-Compatible
. Si vous devez prendre en charge IE9 ou IE8, je vous recommande d'utiliser la balise. Si vous ne prenez en charge que les derniers navigateurs (IE11 et/ou Edge), j'envisagerais de laisser tomber cette balise. Si vous utilisez Twitter Bootstrap et devez éliminer les avertissements de validation, cette balise doit apparaître dans l'ordre indiqué. Informations complémentaires ci-dessous :La balise méta
X-UA-Compatible
permet aux auteurs de sites Web de choisir la version d'Internet Explorer dans laquelle la page doit être rendue. IE11 a apporté des modifications à ces modes ; voir la note IE11 ci-dessous. [Microsoft Edge][1], le navigateur qui a remplacé IE11, n'honore la métabaliseX-UA-Compatible
que dans certaines circonstances. Voir la note de Microsoft Edge ci-dessous. Selon Microsoft, lorsque vous utilisez la baliseX-UA-Compatible
, elle doit être placée le plus haut possible dans lehead
de votre document :Utilisez
content=
"IE=edge,chrome=1"` &emsp ; Ignorez les autres modesX-UA-Compatible
.La barre d'adresse d'IE9 n'affiche pas le [bouton d'affichage de compatibilité][MSICON]
et la page n'affiche pas non plus un fouillis de menus, d'images et de zones de texte déplacés.
Cette balise méta est nécessaire pour activer
javascript::JSON.parse()
sur IE8(même lorsque `` est présent)
Le rendu/exécution du HTML/CSS/JavaScript moderne est plus valide (plus agréable).
Performances*
Le [moteur de rendu Trident][] devrait fonctionner plus rapidement dans son mode bord*. [Moteur de rendu Trident] : https://en.wikipedia.org/wiki/Internet_Explorer
Utilisation
Dans votre HTML
IE=edge
signifie que IE doit utiliser la dernière version (edge) de son moteur de rendu.chrome=1
](http://www.chromium.org/developers/how-tos/chrome-frame-getting-started#TOC-Making-Your-Pages-Work-With-Google-Chrome-Frame) signifie que IE doit utiliser le moteur de rendu Chrome s'il est installé. Ou mieux dans la configuration de votre serveur web :(voir aussi la réponse de RiaD's)
Apache comme proposé par pixeline
Nginx tel que proposé par Stef Pause serveur {
...
Varnish proxy comme proposé par Lucas Riutzel sub vcl_deliver { if( resp.http.Content-Type ~ "text/html" ; ) { set resp.http.X-UA-Compatible = "IE=edge,chrome=1" ; } }
IIS (depuis la v7)
Microsoft recommande le mode Edge depuis IE11
Comme l'a remarqué Lynda (voir les commentaires), la Compatibility changes in IE11 recommande le mode Bordure :
Mais la position de Microsoft n'était pas claire. Une autre [page MSDN ne recommandait pas le mode Edge] [noEdge] :
Utilisez cette option pour forcer IE à masquer le bouton de compatibilité du navigateur dans la barre d'adresse :