Warum DOCTYPE HTML verwenden?

Warum DOCTYPE HTML verwenden?
Sie wissen, dass der Browser ohne diese Option beim Rendern der Seite den Quirks-Modus verwendet. Sie wissen, dass verschiedene Browser verschiedene Elemente im Quirks-Modus unterschiedlich rendern. Sie würden also einen Dokumenttyp wie diesen schreiben:

Code kopieren
Der Code lautet wie folgt:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Glücklicherweise sind verschiedene Webentwicklungstools mittlerweile leistungsstark genug, um das Einfügen von Vorlagencode zu unterstützen, sodass Sie diesen langen und umständlichen Doctype nicht Buchstabe für Buchstabe abtippen müssen. Wenn Sie jedoch genug davon haben, können Sie Folgendes versuchen:

Code kopieren
Der Code lautet wie folgt:

<!DOCTYPE html>

Wow, sehr prägnant! Die Vorteile liegen auf der Hand: 1. Sie können diesen Doctype problemlos schreiben, ohne sich Gedanken über Fehler machen zu müssen. 2. Sie sparen etwa 105 Byte Zeichen. Für eine Site mit zig Millionen PVs täglich kann dies eine beträchtliche Menge an Datenverkehr einsparen. 3. Es ist abwärtskompatibel. Ja, der HTML5-Doctype wird so geschrieben und moderne Browser erkennen ihn.

Wenn Sie wie ich immer gedacht haben , dass das Nichtangeben einer DTD den Sondermodus des Browsers aktiviert , liegen Sie falsch! Die korrekte Anweisung sollte sein, dass der Quirks-Modus nur aktiviert wird, wenn der Doctype nicht definiert ist. Das heißt, Sie müssen nur <!doctype html> definieren, damit der Browser die Seite im strikten Modus (Standardmodus) rendert, ohne einen bestimmten DTD-Typ anzugeben. Halten wir noch einmal fest, dass alle Browser zwei Modi benötigen: den Quirks-Modus und den Strict-Modus (manche nennen ihn auch Standards-Modus). IE 6 für Windows/Mac, Mozilla, Safari und Opera implementieren alle beide Modi, aber Versionen unter IE 6 bleiben immer im Quirks-Modus hängen. Hier sind einige Dinge, die Sie über die beiden Modi wissen müssen:

  1. Seiten, die vor der Standardisierung geschrieben wurden, hatten keinen Dokumenttyp, daher werden Seiten ohne Dokumenttyp im Quirks-Modus gerendert.
  2. Wenn ein Webentwickler hingegen einen Doctype hinzufügt, bedeutet das, dass er weiß, was er tut. Die meisten Doctypes aktivieren den strikten Modus (Standardmodus) und die Seite wird gemäß dem Standard gerendert.
  3. Jeder neue oder unbekannte Dokumenttyp wird im strengen Modus (Standardmodus) gestartet.
  4. Jeder Browser hat seine eigene Möglichkeit, den Quirks-Modus zu aktivieren. Sie können sich diese Liste ansehen: http://hsivonen.iki.fi/doctype/

Hinweis: Sie müssen Ihre Seite überhaupt nicht anhand des von Ihnen gewählten Dokumenttyps validieren. Die bloße Anwesenheit des Dokumenttyp-Tags reicht aus, um den strikten Modus (Standardmodus) zu aktivieren. Wenn Sie immer noch an dem zweifeln, was ich sage, gehen Sie zu http://www.quirksmode.org/css/quirksmode.html#link2, um herauszufinden, was Sie wissen müssen. Um die Antwort zu erhalten, benötigen wir nur einen kleinen JavaScript-Codeabschnitt:

Code kopieren
Der Code lautet wie folgt:

Modus=Dokument.Kompatibilitätsmodus;

Mit diesem Code lässt sich feststellen, ob sich der aktuelle Browser im Quirks-Modus oder im Standardmodus befindet. Die Kompatibilität dieser Eigenschaft steht außer Zweifel. Im Zweifelsfall können Sie http://www.quirksmode.org/dom/w3c_html.html#t11 überprüfen. Sie können http://wanz.im/demo/doctype-test.html in dem Browser aufrufen, den Sie testen möchten, und dort die Ergebnisse sehen. Soweit ich weiß, wird dadurch der Quirks-Modus nicht aktiviert, auch nicht unter IE6. Wenn Sie neue Erkenntnisse haben, hinterlassen Sie mir bitte eine Nachricht.

<<:  9 Tipps für das Webseiten-Layout

>>:  Implementierung der Docker-Bereitstellung des SQL Server 2019 Always On-Clusters

Artikel empfehlen

So ändern Sie die Container-Portzuordnung in Docker dynamisch

Vorwort: Die Docker-Portzuordnung erfolgt häufig,...

Dieser Artikel zeigt Ihnen, was Vite mit der Anfrage des Browsers macht

Inhaltsverzeichnis Funktionsprinzip: Was macht de...

Implementierung der Docker-Batch-Container-Orchestrierung

Einführung Der Dockerfile-Build-Ausführungsvorgan...

So überwachen Sie Array-Änderungen in JavaScript

Vorwort Als ich zuvor „defineProperty“ vorgestell...

Detaillierte Erklärung des Rewrite-Moduls von Nginx

Das Umschreibmodul ist das Modul ngx_http_rewrite...

Lösung für die Baidu-Site-Suche, die https nicht unterstützt (getestet)

Seit kurzem ist https auch auf dem Handy möglich....

Detailliertes Tutorial zur Verwendung des Befehls xargs unter Linux

Hallo zusammen, ich bin Liang Xu. Sind Sie bei de...

Eine kurze Diskussion über das Implementierungsprinzip von Webpack4-Plugins

Inhaltsverzeichnis Vorwort wissen Übung macht den...

CSS3 realisiert Partikelanimationseffekte beim Matching von Königen

Beim Codieren werden Sie feststellen, dass viele ...