Contenu «compatible X-UA» = «IE = 9; IE = 8; IE = 7; IE = EDGE "

233
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
  1. En fait, quel est le sens de cette déclaration?

  2. Certains exemples utilisent ,pour séparer les versions d'IE, tandis que certains utilisent ;; qui est correct?

  3. L'ordre IE=9; IE=8; IE=7; IE=EDGEa une certaine importance, je souhaite le savoir.

Edit : j'utilise<!DOCTYPE html>

Kuttan Sujith
la source
je pense que IE = 9 ne convient pasX-UA-Compatible
Krish
3
Google le recommande réellement: developers.google.com/web-toolkit/doc/latest/DevGuideIE9
PlantTheIdea

Réponses:

328

Si vous prenez en charge IE, pour les versions d'Internet Explorer 8 et supérieures, ceci:

<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7" />

Force le navigateur à s'afficher comme les normes de cette version particulière. Il n'est pas pris en charge pour IE7 et les versions antérieures.

Si vous vous séparez avec un point-virgule, il définit les niveaux de compatibilité pour différentes versions. Par exemple:

<meta http-equiv="X-UA-Compatible" content="IE=7; IE=9" />

Rend IE7 et IE8 en IE7, mais IE9 en IE9. Il permet différents niveaux de compatibilité descendante. Dans la vraie vie, cependant, vous ne devriez choisir qu'une des options:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

Cela permet des tests et une maintenance beaucoup plus faciles. Bien que généralement la version la plus utile de ceci utilise Emulate:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />

Pour ça:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

Il force le navigateur à effectuer le rendu selon les normes de la version la plus récente.

Pour plus d'informations, il y a beaucoup à lire sur MSDN ,

PlantTheIdea
la source
9
l'ordre IE = 9; IE = 8; IE = 7; IE = EDGE a une certaine importance, je souhaite savoir que
Kuttan Sujith
J'ai une petite lacune dans ma compréhension de cela. Si ma cible pour les tests est IE8, mais je ne veux pas casser IE7, à quoi définiriez-vous cette balise META? Et d'autres navigateurs l'utilisent-ils?
Snekse
2
IE7 ne reconnaîtra pas cela, il a été implémenté en premier dans IE8. La référence entière à IE7 ci-dessus est si, par exemple, vous utilisiez IE7 comme base pour les tests et vouliez que toutes les versions plus modernes d'IE soient restituées comme elles le feraient dans les normes IE7. aucun autre navigateur n'utilise cette balise.
PlantTheIdea
1
IE10 rend bien les anciennes applications Web avec IE = 8 (YMMV), mais l'émulation IE11 des coupures IE8. Cet UA: content="IE=8; IE=11"donne les normes IE8 en mode navigateur IE10 en mode navigateur dans IE10 et le bord en mode document dans IE11. L'un des problèmes liés à l'affectation IE10 et IE11 UA est que Microsoft a supprimé les commentaires conditionnels .
Underverse
Sur la base de cette balise META, IE11 n'émulerait pas IE8, il supposerait IE11 (comme cela était indiqué dans la liste séparée par des points-virgules). Cette liste expliquerait également le retour aux normes IE8 car IE10 ignorait l'existence d'IE11, tout comme IE8 ne pouvait pas appliquer les normes IE9. Avez-vous essayé simplement d'utiliser content="IE=8"? Ou, de préférence, content="IE=EmulateIE8"?
PlantTheIdea
4

Dans certains cas, il peut être nécessaire de restreindre l'affichage d'une page Web à un mode document pris en charge par une version antérieure d'Internet Explorer. Vous pouvez le faire en diffusant la page avec un en-tête compatible x-ua. Pour plus d'informations, voir Spécification des modes de document hérités.
- https://msdn.microsoft.com/library/cc288325

Ainsi, cette balise est utilisée pour pérenniser la page Web, de sorte que le moteur plus ancien / compatible est utilisé pour la rendre de la même manière que celle prévue par le créateur.

Assurez-vous que vous l'avez vérifié pour fonctionner correctement avec la version IE que vous spécifiez.

Ujjwal Singh
la source