Sur le site de Microsoft, ils affirment qu'une simple déclaration doctype est suffisante. Mais même un document aussi court que celui-ci retombe en mode IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Sur le site de Microsoft, ils affirment qu'une simple déclaration doctype est suffisante. Mais même un document aussi court que celui-ci retombe en mode IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Réponses:
Internet Explorer part du principe que la plupart des pages Web ont été écrites pour cibler des versions antérieures d'IE et examine le doctype, les balises meta et HTML pour déterminer le meilleur mode de compatibilité (parfois incorrectement). Même avec un doctype HTML5, IE placera toujours votre site Web en mode de compatibilité s'il s'agit d'un site intranet.
Pour vous assurer que votre site Web utilise toujours le dernier mode standard, vous pouvez vous assurer qu'il Display intranet sites in Compatibly
est désactivé. Cependant, vous devez le faire sur chaque machine locale du serveur Web (les instructions sont ci-dessous).
Alternativement, et mieux encore, vous pouvez utiliser l'en- X-UA-Compatible
tête pour désactiver cela à partir du serveur. Il est important de noter que l' utilisation de la balise meta ne fonctionnera pas!
<!-- Doesn't always work! -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Tout au long de MSDN, il est mentionné que l'utilisation d'un en-tête d'hôte ou d'une balise Meta devrait remplacer même les sites intranet. L'article Comprendre les modes de compatibilité dans Internet Explorer 8 dit ce qui suit.
Un grand nombre de sites Web d'entreprise internes sont optimisés pour Internet Explorer 7, cette exception par défaut préserve donc cette compatibilité. ... Encore une fois, si une balise Meta ou un en-tête http est utilisé pour définir un mode de compatibilité avec le document, il remplacera ces paramètres.
Cependant, dans la pratique, cela ne fonctionnera pas, l'utilisation d'un en-tête d'hôte est la seule option qui fonctionne. La section commentaires de l'article montre également de nombreux exemples de ce problème exact.
L'utilisation d'une balise Meta pose également plusieurs autres problèmes tels que l'ignorance de la balise si elle n'est pas directement sous la <head>
balise ou s'il y a trop de données devant elle (4k). Cela peut également déclencher la révision du document dans certaines versions d'IE, ce qui ralentira le rendu. Vous pouvez en savoir plus sur ces problèmes dans l'article MSDN Meilleures pratiques: Mettez votre HEAD en ordre .
Ajout de l'en-tête compatible X-UA
Si vous utilisez .NET et IIS, vous pouvez l'ajouter au web.config
, vous pouvez également le faire par programme:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Si vous n'utilisez pas IIS, il est facile de le faire dans n'importe quelle langue. Par exemple, voici comment le faire en PHP:
header('X-UA-Compatible: IE=edge');
Tant que l'en- X-UA-Compatible
tête est présent avec le doctype HTML5, un site fonctionnera toujours dans le dernier mode standard.
Désactivation de la vue de compatibilité
Il peut être utile de désactiver la vue de compatibilité. Pour ce faire, décochez Display all intranet sites in compatibility view
dans les paramètres d' affichage de compatibilité.
Vous pouvez en parler en appuyant sur Altpour obtenir le menu.
Modifier Cette réponse concerne également IE9.
alt
pour faire apparaître la barre d'outils, c'est sous outils -> paramètres de vue compat
Cela fonctionne pour moi.
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
X-UA-Compatible
balise meta, mais qui ne déclenche toujours pas le mode document des normes IE10 comme page par défaut, j'ai trouvé que si la balise meta est située sous les balises de script ou est juste trop loin du haut de l' <head>
arborescence DOM, IE10 pleure et définit le mode document sur les normes IE8. Alors, gardez votre IE=edge
balise META à proximité de la <title>
balise. Ce n'est pas toujours un simple correctif pour les sites Wordpress lorsqu'il n'est pas codé en dur dans le fichier de modèle d'en-tête. Je ne sais pas si IE11 se soucie de l'emplacement de la balise Meta, mais j'espère que cela sera utile à quelqu'un.
Essayez d'ajouter la balise suivante à la tête
<meta http-equiv="X-UA-Compatible" content="IE=11,IE=10,IE=9,IE=8" />
IE=Edge
place
La balise meta ne fait rien pour les sites intranet et mon problème était le rendu IE10 en mode de compatibilité IE10. Ce qui a résolu le problème pour moi était de pousser plus loin la réponse de @ Jeow et d'utiliser cette valeur dans un en-tête http en ajoutant ce qui suit web.config
sous IIS:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<!-- <add name="X-UA-Compatible" value="IE=edge" /> not good enough -->
<add name="X-UA-Compatible" value="IE=11,IE=10,IE=9,IE=8" />
</customHeaders>
</httpProtocol>
</system.webServer>
À des fins d'IE, les sites intranet incluent des sites publics qui ne sont pas acheminés vers l'extérieur - par exemple, un employé de Stackoverflow travaillant depuis le bureau verrait probablement stackoverflow.com en mode de compatibilité.
Cela a parfaitement fonctionné pour moi lorsque j'ai fait ce qui suit:
Sur http://msdn.microsoft.com/en-us/library/gg699338(v=vs.85).aspx
Utilisé l'exemple exact qu'ils fournissent dans la première case (ajouté le manquant </html>
en bas), l'a ouvert dans IE10 et les normes ont été forcées, je pense que vous aurez peut-être besoin d'un contenu réel dans le html pour forcer les normes pas sûr.
Ma suggestion serait de remplacer votre code vide par du contenu réel (quelque chose de simple) et de voir ce qu'il fait.