Auf der Microsoft-Website behaupten sie, dass eine einfache Deklaration des Doctype ausreicht. Aber auch ein so kurzes Dokument fällt auf den IE7-Modus zurück:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Auf der Microsoft-Website behaupten sie, dass eine einfache Deklaration des Doctype ausreicht. Aber auch ein so kurzes Dokument fällt auf den IE7-Modus zurück:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Antworten:
Internet Explorer geht davon aus, dass die meisten Webseiten für frühere IE-Versionen geschrieben wurden, und untersucht den Doctype, die Meta-Tags und den HTML-Code, um den besten Kompatibilitätsmodus zu ermitteln (manchmal falsch). Selbst mit einem HTML5-Doctype versetzt der IE Ihre Website in den Kompatibilitätsmodus, wenn es sich um eine Intranetsite handelt.
Um sicherzustellen, dass Ihre Website immer den neuesten Standardmodus verwendet, können Sie entweder sicherstellen, dass sie deaktiviert Display intranet sites in Compatibly
ist. Sie müssen dies jedoch auf jedem Computer tun, der sich lokal auf dem Webserver befindet (Anweisungen finden Sie unten).
Alternativ und noch besser können Sie den X-UA-Compatible
Header verwenden, um dies vom Server aus zu deaktivieren. Es ist wichtig zu beachten, dass die Verwendung des Meta-Tags nicht funktioniert!
<!-- Doesn't always work! -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
In MSDN wird erwähnt, dass die Verwendung eines Host-Headers oder eines Meta-Tags sogar Intranetsites überschreiben sollte. Der Artikel Grundlegendes zu Kompatibilitätsmodi in Internet Explorer 8 enthält Folgendes.
Eine große Anzahl interner Unternehmenswebsites ist für Internet Explorer 7 optimiert, sodass diese Standardausnahme diese Kompatibilität beibehält. ... Wenn ein Meta-Tag oder ein http-Header verwendet wird, um einen Kompatibilitätsmodus für das Dokument festzulegen, werden diese Einstellungen überschrieben.
In der Praxis funktioniert dies jedoch nicht. Die Verwendung eines Host-Headers ist die einzige Option, die funktioniert. Der Kommentarbereich des Artikels zeigt auch zahlreiche Beispiele für dieses genaue Problem.
Die Verwendung eines Meta-Tags hat auch einige andere Probleme, z. B. das Ignorieren des Tags, wenn es sich nicht direkt unter dem <head>
Tag befindet oder wenn zu viele Daten vor dem Tag vorhanden sind (4k). In einigen IE-Versionen kann das Dokument möglicherweise erneut repariert werden, wodurch das Rendern verlangsamt wird. Weitere Informationen zu diesen Problemen finden Sie im MSDN-Artikel Best Practice: Bringen Sie Ihren HEAD in Ordnung .
Hinzufügen des X-UA-kompatiblen Headers
Wenn Sie .NET und IIS verwenden, können Sie dies dem hinzufügen. Sie können dies web.config
auch programmgesteuert tun:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Wenn Sie IIS nicht verwenden, ist dies in jeder Sprache einfach. So geht's zum Beispiel in PHP:
header('X-UA-Compatible: IE=edge');
Solange der X-UA-Compatible
Header mit dem HTML5-Doctype vorhanden ist, wird eine Site immer im neuesten Standardmodus ausgeführt.
Kompatibilitätsansicht deaktivieren
Es kann weiterhin nützlich sein, die Kompatibilitätsansicht zu deaktivieren. Deaktivieren Sie dazu Display all intranet sites in compatibility view
die Einstellungen in der Kompatibilitätsansicht.
Sie können dies aufrufen, indem Sie auf klicken Alt, um das Menü aufzurufen.
Bearbeiten Diese Antwort bezieht sich auch auf IE9.
alt
, um die Symbolleiste aufzurufen , es ist unter Tools -> Einstellungen für die kompatible Ansicht
Das funktioniert bei mir ..
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
X-UA-Compatible
Meta-Tag hat, aber immer noch nicht den IE10-Standard-Dokumentmodus als Seitenstandard auslöst, habe ich festgestellt, dass sich das Meta-Tag unter Skript-Tags befindet oder nur ist <head>
IE10 weint zu weit oben im DOM-Baum und setzt den Dokumentmodus auf IE8-Standards. Halten Sie also Ihr IE=edge
Meta-Tag in der Nähe des <title>
Tags. Nicht immer eine einfache Lösung für Wordpress-Sites, wenn diese nicht in der Header-Vorlagendatei fest codiert ist. Ich bin mir nicht sicher, ob es IE11 wichtig ist, wo sich das Meta-Tag befindet, hoffe aber, dass dies für jemanden hilfreich ist.
Fügen Sie dem Kopf das folgende Tag hinzu
<meta http-equiv="X-UA-Compatible" content="IE=11,IE=10,IE=9,IE=8" />
IE=Edge
stattdessen sein
Das Meta-Tag bewirkt nichts für Intranetsites und mein Problem war das Rendern von IE10 im IE10-Kompatibilitätsmodus. Was das Problem für mich angegangen ist, war, die Antwort von @ Jeow weiter zu verfolgen und diesen Wert in einem http-Header zu verwenden, indem web.config
unter IIS Folgendes hinzugefügt wurde :
<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>
Für IE-Zwecke umfassen Intranetsites öffentlich zugängliche Sites, die nicht extern weitergeleitet werden. Beispielsweise würde ein Stackoverflow-Mitarbeiter, der vom Büro aus arbeitet, stackoverflow.com wahrscheinlich im Kompatibilitätsmodus sehen.
Es hat perfekt für mich funktioniert, als ich Folgendes tat:
Auf http://msdn.microsoft.com/en-us/library/gg699338(v=vs.85).aspx
Verwendete das genaue Beispiel, das sie in der ersten Box angegeben haben (fügte das fehlende </html>
unten hinzu), öffnete es in IE10 und Standards wurden erzwungen. Ich denke, Sie benötigen möglicherweise tatsächlichen Inhalt im HTML, damit Standards nicht sicher erzwungen werden.
Mein Vorschlag wäre, Ihren leeren Code durch tatsächlichen Inhalt (etwas Einfaches) zu ersetzen und zu sehen, was er tut.