web-dev-qa-db-fra.com

Comment puis-je forcer Internet Explorer à effectuer le rendu en mode Standards et NON en quirks?

Je code un frontend qui fonctionne bien dans IE7 Standards Mode et IE8 Standards Mode.

Lorsque je lance Internet Explorer et que je charge la page, IE7 et IE8 passent directement en mode Quirks. Comment puis-je forcer IE7 et IE8 à toujours charger la page en mode standard?

Je n'ai pas de balises méta spéciales ajoutées jusqu'à présent.

Merci pour votre aide

Edit: Mon doctype et ma tête ressemblent à ce qui suit:

<!DOCTYPE html> 
<html lang="de"> 
<head> 
    <title>...</title> 
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta charset="utf-8" />
    <script src="js/html5.js"></script> 

    (...)
</head>
73
maze

C'est le moyen d'être absolument certain:

<!doctype html> <!-- html5 -->
<html lang="en"> <!-- lang="xx" is allowed, but NO xmlns="http://www.w3.org/1999/xhtml", lang:xml="", and so on -->
<head>
<meta http-equiv="x-ua-compatible" content="IE=Edge"/> 
<!-- as the **very** first line just after head-->
..
</head>

Raison:
Chaque fois que IE rencontre tout ce qui entre en conflit , il repasse en mode "Normes IE 7", en ignorant le x-ua-compatible.

(Je sais que c'est une réponse à une très vieille question, mais je me suis débattu moi-même, et le schéma ci-dessus est la bonne réponse. Cela fonctionne parfaitement, à chaque fois)

86
davidkonrad

Malheureusement, ils veulent que nous utilisions une balise pour que leur navigateur sache quoi faire. Regardez this la documentation, elle nous dit d’utiliser:

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

et cela devrait faire.

33
Alfabravo
  1. Utiliser html5 doctype au début de la page.

    <!DOCTYPE html>

  2. Forcer IE pour utiliser le dernier mode de rendu

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

  3. Si votre navigateur cible est ie8, vérifiez vos paramètres compatibles dans IE8.

je blogue ceci en détails

11
ValidfroM

Ajouter la déclaration de doctype correcte et éviter le prologue XML devrait suffire à éviter mode quirks .

10
safetycopy

Je sais que cette question a été posée il y a plus de 2 ans, mais personne ne l'a encore mentionné.

La meilleure méthode consiste à utiliser un en-tête http

L'ajout de la balise Meta à la tête ne fonctionne pas toujours car IE a peut-être déterminé le mode avant sa lecture. La meilleure façon de vous assurer que IE utilise toujours Le mode standard consiste à utiliser un en-tête http personnalisé.

Entête:

name: X-UA-Compatible  
value: IE=Edge

Par exemple, dans une application .NET, vous pouvez placer ceci dans le fichier web.config.

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="X-UA-Compatible" value="IE=Edge" />
      </customHeaders>
    </httpProtocol>
</system.webServer>
9
Daniel Little

Il est possible que HTML5 Doctype vous cause des problèmes avec ces navigateurs plus anciens. Cela pourrait aussi être dû à quelque chose de génial lié au shiv HTML5.

Vous pouvez essayer de passer à l’un des doctypes XHTML et de modifier votre balisage en conséquence, au moins temporairement. Cela pourrait vous permettre de réduire le problème.

Votre conception est-elle en rupture lorsque ces IE passent en mode quirks? Si votre CSS provoque un affichage inhabituel, il peut être intéressant de travailler sur le CSS afin que le site ait la même apparence même lorsque les navigateurs changent de mode.

2
safetycopy