comment forcer à utiliser le mode document standard d'Internet Explorer IE9, j'ai construit un site Web et lors du rendu, IE9 utilise le mode Quirks à chaque fois, mais je souhaite utiliser le mode standard pour le rendu.
Réponses
Trop de publicités? <!doctype html>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
Cela rend chaque version de IE utiliser son mode standard, de sorte que IE 9 utiliser IE 9 normes de la mode. (Si vous voulais des versions plus récentes d'internet explorer, utilisez IE 9 normes de la mode, vous devez le remplacer Edge
par 9
. Mais il est difficile de voir pourquoi vous le voulez.)
Pour les explications, voir http://hsivonen.iki.fi/doctype/#ie8 (il semble plutôt compliqué, mais c'est parce que IE est en désordre dans ses comportements).
Il y a quelque chose de très important sur ce sujet a été abordé, mais pas complètement expliqué. Le html approche (l'ajout d'une balise meta dans le head) ne fonctionne que de manière cohérente sur du html brut, ou très serveur de base de pages. Mon site est très complexe gérés par le serveur du site avec les pages maîtres, la thématisation et beaucoup de contrôles tiers etc. Ce que j'ai constaté, c'est que certains de ces contrôles ont été par programme en ajoutant leurs propres étiquettes pour le HTML final être poussé à l'navigateur au début de la balise head; effectivement rendu les balises HTML meta inutile.
Eh bien, si vous ne pouvez pas les battre, rejoignez-les. La seule solution qui a fonctionné pour moi est de faire exactement la même chose dans le pré-rendu de l'événement de mon maître pages en tant que tel:
Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
Dim MetaTag As HtmlMeta = New HtmlMeta()
MetaTag.Attributes("http-equiv") = "Content-Type"
MetaTag.Attributes("content") = "text/html; charset=utf-8;"
Page.Header.Controls.AddAt(0, MetaTag)
MetaTag = New HtmlMeta()
MetaTag.Attributes("http-equiv") = "X-UA-Compatible"
MetaTag.Attributes("content") = "IE=9,chrome=1"
Page.Header.Controls.AddAt(0, MetaTag)
End Sub
C'est vb.net mais la même approche pourrait fonctionner pour n'importe quel côté serveur de la technologie. Aussi longtemps que vous vous assurez que c'est la dernière chose qui se fait juste avant que la page est affichée.
mettre un doctype comme première ligne de votre document html
<!DOCTYPE html>
vous trouverez des explications détaillées sur la compatibilité des documents Internet Explorer ici: Définition de la compatibilité des documents
Pour empêcher le mode quirks, définissez un "type de document" comme:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Pour que IE rende la page en mode document IE9:
<meta http-equiv="x-ua-compatible" content="IE=9">
Veuillez noter que "IE=edge"
fera que IE rendra la page avec le mode document le plus récent, plutôt que le mode document IE9.