it-swarm.com.de

Was ist DOCTYPE?

  • Was ist DOCTYPE und warum möchte ich es verwenden?
  • Welche unterschiedlichen DOCTYPEs kann ich verwenden?
  • Was ist der Unterschied zwischen dem Standard- und dem Mackenmodus und auf welche Macken kann ich mit unterschiedlich eingestellten DOCTYPEs stoßen?

Was ist der richtige DOKTYP, den ich verwenden sollte?

171
Bob

Grundsätzlich beschreibt der DOCTYPE den HTML-Code, der in Ihrer Seite verwendet wird.

Browser verwenden auch den DOCTYPE, um zu bestimmen, wie eine Seite gerendert wird. Das Nichteinschließen eines DOCTYPE oder das Einschließen eines falschen DOCTYPE kann den Mackenmodus auslösen. Der Kicker hier ist, dass der Macken-Modus in Internet Explorer ganz anders ist als der Macken-Modus in Firefox (und anderen Browsern), was bedeutet, dass Sie einen viel härteren Job haben, um sicherzustellen, dass Ihre Seite konsistent funktioniert in allen Browsern, wenn Seiten im Mackenmodus gerendert werden, als Sie, wenn sie im Standardmodus gerendert werden.

Wikipedia bietet eine detailliertere Zusammenfassung der nterschiede beim Rendern bei Verwendung verschiedener DOCTYPEs . XHTML wird durch bestimmte Doktypen aktiviert, und es gibt einige Debatten über die Verwendung von XHTML, die in XHTML - Mythen und Realität ausführlich behandelt werden.

Es gibt subtile Unterschiede zwischen verschiedenen Rendering-Doktotypen für "Standardbeschwerden", z. B. dem HTML5-Doktyp (<!DOCTYPE html>, vor HTML5 nur als "Skinny Doctype" bekannt, der in älteren Browsern kein standardisiertes Rendering auslöst) und andere DOCTYPEs wie dieses für HTML 4.01 Transitional:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
74
Walter Rumsby

Der DOCTYPE teilt dem konsumierenden Benutzeragenten (Webbrowser, Webcrawler, Validierungstools) mit, um welchen Dokumenttyp es sich bei der Datei handelt. Durch die Verwendung wird sichergestellt, dass der Konsument den HTML-Code korrekt analysiert, wie Sie es beabsichtigt haben.

Es gibt verschiedene DOCTYPES für HTML, XHTML und Framesets, und jeder dieser Modi verfügt über zwei Modi: Strict und Transitional. Streng sagt, dass Ihr Markup genau die definierten Standards verwendet. Weitere Informationen finden Sie auf der Seite W3C-DTDs .

Quirksmode ist im Grunde die Layoutmethode der Browserkriege, als die Standards viel weniger respektiert und definiert wurden. Im Allgemeinen wird eine Seite im Standardmodus, die gültig ist, über verschiedene Browser hinweg einheitlicher gestaltet, es fehlen jedoch möglicherweise bestimmte Funktionen, die Sie benötigen. Ein solches Merkmal ist das Zielattribut des Ankertags. Die Seite Quirksmode ist eine großartige Ressource für diese Unterschiede.

Ein letzter Gedanke ist, dass der neue HTML5-Standard die Verwendung eines sehr einfachen DOCTYPE vorschlägt:

<!DOCTYPE html>

Mit diesem DOCTYPE können Sie vorwärtskompatibel festlegen, dass sich Ihre Seiten im Standardmodus und in HTML befinden. Dies ist die Methode, die Google verwendet, und ist einigermaßen leicht zu merken. Ich empfehle die Verwendung dieses DOCTYPE, es sei denn, Sie planen die Verwendung von XHTML.

26
Rob

Ein Doctype definiert, welche HTML/XHTML-Version Ihr Dokument verwendet. Sie sollten einen doctype verwenden, damit die Prüfer wissen, anhand welcher HTML/XHTML-Version sie prüfen müssen, wenn Sie Ihren Code über Validatoren ausführen. Diese Seite bietet einen guten Überblick:

Vergiss nicht einen Doctype hinzuzufügen

Die gebräuchlichen Doktypen, die Sie verwenden können, sind hier aufgelistet:

Empfohlene Liste von DTDs

Welchen Doctype Sie verwenden sollten, hängt vom verwendeten Code ab. Um sich ein Bild zu machen, führen Sie den Code über den W3C-Validator aus und verwenden Sie den Dokumenttyp Dropdown-Menü im Menü "Weitere Optionen", um verschiedene Doctypes auszuprobieren.

W3C Markup Validation Service

6
GR1000

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 eine Referenz auf eine Document Type Definition (DTD), die die formalen Syntaxregeln der Auszeichnungssprache festlegt. Kein Browser hat jemals DTDs für irgendetwas benutzt oder auf sie 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 können DOCTYPEs auch auf andere Weise verwenden, die Frage soll sich jedoch 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 Entwurf definiert einen eigenen DOCTYPE oder DOCTYPEs. Die von den Browsern beim Auswählen des Modus erkannten DOCTYPE-Typen variieren je nach Browser. In der Praxis gibt es keinen Grund, einen anderen DOCTYPE als <DOCTYPE html>wie in HTML5 definiert zu verwenden, obwohl HTML5 auch einige „Legacy-DOCTYPEs“ auflistet. Sie können diesen DOCTYPE verwenden, wenn Sie den Standardmodus verwenden möchten (empfohlen für neue Seiten), und Sie können keinen DOCTYPE verwenden, wenn Sie den Mackenmodus verwenden 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 keine vollständige Konformität. Der "Quirks-Modus" ist in verschiedenen Browsern unterschiedlich, aber im Allgemeinen bedeutet er einen Versuch, das Verhalten sehr alter Browser wie IE 5.) ​​nachzuahmen. Der Zweck besteht darin, alte Seiten unter der Annahme, dass sie weiterhin funktionieren, zu erhalten Sie können sich auf Funktionen und Fehler in den alten Browsern stützen. Siehe die Beschreibung Was passiert im Quirks-Modus? Beachten Sie, dass es in HTML5 ein etwas anderes, eingeschränkteres Konzept des „Quirks-Modus“ gibt, das stark ähnelt das Dokument namens Quirks Mode Living Standard .

Ein typisches Problem ist, dass die Elementbreiten im Mackenmodus und im Standardmodus unterschiedlich berechnet werden. Dies bedeutet, dass das Layout einer Seite mehr oder weniger verändert oder sogar völlig durcheinander gebracht werden kann, wenn eine Seite, die für den Mackenmodus entwickelt wurde, im Standardmodus angezeigt wird (oder umgekehrt).

Verwenden Sie also <!DOCTYPE html> Für neue Seiten und behalten Sie den DOCTYPE (falls vorhanden) bei, den Sie für alte Seiten verwendet haben.

Der Quirks-Modus bedeutet jedoch, dass in einigen Browsern viele neue CSS-Funktionen 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.

3

Doctypes teilen dem Browser mit, in welcher Sprache die Seite geschrieben ist, sei es HTML oder XHTML. Beispielsweise,

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

weisen Sie den Browser an, die Seite als HTML4 strict zu rendern. Ältere Browser, mit denen Seiten falsch gerendert wurden, und neuere Browser simulieren daher Fehler der älteren Browser, wenn sie einen alten Doctype finden.

Heute sollten Sie mindestens HTML4 oder besser XHTML verwenden.

Ein Blogeintrag über Doctypes ist Fix Your Site With The Right DOCTYPE! (from A List Apart =).

2
Georg Schölly

Im Web kann ein Doctype dem Browser nur mitteilen, ob Sie einen Standard-, Fast-Standard- oder Macken-Modus wünschen.

Welche Änderungen im Quirks-Modus vorgenommen werden, hängt vom Browser ab: Firefox, Opera, Safari und Chrome implementieren eine begrenzte Anzahl von Quirks, z. B. das Entfernen des Leerzeichens für Textabweichungen in Code wie <table><tr><td><img></td></tr></table>. (Lösung: td img { vertical-align:bottom; }) IE kehrt hingegen zur Rendering-Engine in IE5.5 zurück, was bedeutet, dass Sie keine der neuen nicht verwenden können Funktionen seit 2000 implementiert.

Um den Standardmodus auszulösen, empfehle ich die Verwendung des HTML5-Doctype <doctype html>, Da dies am einfachsten zu merken ist.

1
Ms2ger

Zunächst gibt es keinen Doctype, den Sie verwenden sollten, aber die meisten Designer versuchen, ihn in XHTML 1.0 Strict zum Laufen zu bringen.

Ein Doctype ist nichts anderes als eine Erklärung, welche Tags Sie in Ihrem HTML-Code verwenden können (obwohl die Browser mehr oder weniger als die definierten Tags verwenden können). Sie können die Doctype-Datei tatsächlich öffnen und mit dem Lesen beginnen ( XHTML 1.0 Strict )

Wenn Sie keinen Doctype angeben, versucht der Browser nach besten Kräften zu raten, trifft jedoch nicht immer den richtigen Typ.

Der Quirks-Modus ist nur eine Technik, die von Browsern verwendet wird, um abwärtskompatibel zu sein. Ein gutes Beispiel für den Quirks-Modus ist IE rendert Boxen

1
Ólafur Waage

Ein Doctype ist ein Dokument, das beschreibt, wie der Inhalt eines xhtml-ähnlichen Dokuments aussehen kann (wie eine Webseite). Hinweis: Dies definiert nur die Syntax der Seite, das Rendern der Seite wird NICHT durch die DTD definiert!

Zum Beispiel könnte ein Doctype definieren, wie das <table>- tag kann so aussehen - welche Attribute es akzeptiert und welche Werte/Wertetypen für jedes Attribut akzeptiert werden. Stellen Sie es sich als Lexikon für Ihre aktuelle Webseite vor.

Wikipedia hat eine informative Seite zu den verschiedenen gängigen Doctypes. Wohlgemerkt - nichts hindert Sie daran, Ihren eigenen Doktyp zu erstellen. Es ist jedoch wahrscheinlich, dass der Browser nicht weiß, wie Ihr Dokument gerendert werden soll.

Welche DTD verwendet wird, hängt davon ab, was Sie schreiben werden. XHTML hat beispielsweise eine ganz andere DTD als HTML.

0
Henrik Paul