In HTML (einschließlich XHTML), wie es auf Webseiten verwendet wird, ist DOCTYPE eine Zeichenfolge, die abhängig von der genauen Schreibweise des DOCTYPE einen der wenigen Browsermodi (Mackenmodus, Standardmodus, fast Standardmodus) auslöst. Sie möchten damit einen Browsermodus auswählen, der am besten zu Ihrer Seite passt.
Formal ist eine DOCTYPE-Deklaration in SGML und XML ein Verweis auf eine Dokumenttypdefinition (DTD), die die formalen Syntaxregeln der Auszeichnungssprache angibt. Kein Browser hat jemals DTDs für irgendetwas verwendet oder sogar darauf zugegriffen. Sie werden jedoch von SGML- und XML-Markup-Validatoren wie dem W3C-Markup-Validator verwendet , außer im HTML5-Modus. Daher bestimmt die Auswahl von DOCTYPE, wie ein Validator funktioniert, wenn das Dokument an ihn gesendet wird. Der Validator-Betriebsmodus kann jedoch auch in seiner Benutzeroberfläche ausgewählt werden. (SGML- und XML-Prozessoren verwenden DOCTYPEs möglicherweise auch auf andere Weise, aber die Frage soll sich anscheinend auf den HTML-Kontext sowie auf Webbrowser und eng verwandte Software beschränken.)
Es gibt keine maßgebliche Liste von DOCTYPEs. Jede HTML-Spezifikation oder jeder HTML-Entwurf definiert ihre eigenen DOCTYPE oder DOCTYPEs. Die Anzahl der DOCTYPEs, die von Browsern bei der Auswahl des Modus erkannt werden, variiert je nach Browser. In der Praxis gibt es keinen Grund, einen anderen als <DOCTYPE html>
den in HTML5 definierten DOCTYPE zu verwenden , obwohl HTML5 auch einige „ältere DOCTYPEs“ auflistet. Sie können diesen DOCTYPE verwenden, wenn Sie den Standardmodus möchten (empfohlen für neue Seiten), und keinen DOCTYPE verwenden, wenn Sie den Mackenmodus möchten (den Sie möglicherweise für ältere Seiten benötigen).
„Standardmodus“ bezeichnet im Allgemeinen den Betriebsmodus, in dem ein Browser HTML, CSS, DOM und anderen Spezifikationen so gut wie möglich folgt. Dies bedeutet normalerweise nicht die vollständige Konformität. Der „Quirks-Modus“ ist in verschiedenen Browsern unterschiedlich, bedeutet jedoch im Allgemeinen, dass versucht wird, das Verhalten sehr alter Browser wie IE 5 nachzuahmen. Der Zweck besteht darin, alte Seiten funktionsfähig zu halten, unter der Annahme, dass sie möglicherweise auf Funktionen und Fehlern in den Browsern beruhen alte Browser. Siehe Beschreibung Was passiert im Quirks-Modus? Beachten Sie, dass es in HTML5 ein etwas anderes, eingeschränkteres Konzept des „Quirks-Modus“ gibt, das dem Dokument mit dem Namen Quirks Mode Living Standard sehr ähnlich ist .
Ein typisches Problem ist, dass Elementbreiten im Mackenmodus und im Standardmodus unterschiedlich berechnet werden. Dies bedeutet, dass das Layout einer Seite mehr oder weniger geändert oder sogar völlig durcheinander gebracht werden kann, wenn eine Seite, die für den Mackenmodus ausgelegt ist, im Standardmodus angezeigt wird (oder umgekehrt).
Sie sollten es also <!DOCTYPE html>
für neue Seiten verwenden und den DOCTYPE (falls vorhanden) behalten, den Sie für alte Seiten verwendet haben.
Der Mackenmodus bedeutet jedoch in einigen Browsern, dass viele neue Funktionen von CSS nicht unterstützt werden. Wenn Sie also eine alte Seite mit einer CSS3-Funktion erweitern möchten, müssen Sie möglicherweise zu einem DOCTYPE wechseln, der den Standardmodus auslöst. In diesem Fall müssen Sie die Seite überprüfen und testen, um festzustellen, ob sie im Standardmodus ausgeführt wird.