Das <!DOCTYPE>-Tag gibt die Document Type Definition (DTD) des Dokuments an. Die DTD bestimmt die Grammatik und die Syntax der HTML-Sprache.
Das Tag ist zwar nicht zwingend erforderlich, aber das W3C (World Wide Web Consortium), das den Standard für HTML 4.01 spezifiziert, empfiehlt, das <!DOCTYPE>-Tag stets zu setzen.
Dahinter verbirgt sich, dass die Standardisierung von HTML im Laufe der Jahre Versionen hervorbrachte, die den heutigen Bestrebungen einer reinen Strukturierungssprache entgegenliefen und z.B. Hintergrundfarben und Schriftenauszeichnung definierten, die heute als unerwünscht gelten. Ein moderner Browser soll aber gleichzeitig "antike" und moderne HTML-Dokumente korrekt darstellen. Die Angabe des Dokumententyps verhilft dem Browser zu einer besseren Orientierung und vermeidet Darstellungsfehler. Wenn das <!DOCTYPE>-Tag nicht gesetzt wird, simulieren neuere Browser zudem die Darstellungsfehler ihrer älteren Versionen, auch hier wieder in dem Bestreben, "antike" HTML-Dokumente weiterhin ansehnlich zu rendern. So kann es passieren, dass Sie ein Dokument korrekt codieren, der Browser das Dokument aber fehlerhaft darstellt, da er sich an seine alte Darstellung eines Elements hält.
Das Tag kann nur in die erste Zeile des HTML-Codes gesetzt werden. Es ist das einzige Tag, das vor dem <HTML>-Tag stehen kann.
DOCTYPE HTML PUBLIC bedeutet, dass sich das Dokument auf die
öffentlich verfügbare HTML-DTD bezieht.
"-//W3C//DTD HTML 4.01//EN" kennzeichnet das W3C als
maßgeblichen Herausgeber des Dokumententyps "HTML", der in
der Version 4.01 im Dokument benutzt wird. EN ist die Sprachangabe (Englisch)
und bezieht sich nicht auf den Inhalt des Dokuments, sondern auf die Notation
von HTML-Elementen und -Attributen.
Die URL http://www.w3.org/TR/1999/REC-html401-19991224 erlaubt
dem User Agent (Browser), die DTD und darin enthaltene Regeln und Elemente
zu laden, wenn sie benötigt werden. Theoretisch wäre es einem Browser
dadurch möglich, auch neuere Versionen von HTML, die nach dem Erscheinen
des Browsers veröffentlicht werden, korrekt zu interpretieren. In der
Praxis ist wohl kaum ein Browser in der Lage, tatsächlich neuere Regeln
nachträglich zu adaptieren. Die Adresse ist demzufolge auch nicht erforderlich.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
strict schließt aus, dass die Darstellung des Dokuments
Elemente und Attribute benutzt, die das W3C als Aufgabe von Stylesheets ansieht.
Auch die Benutzung der HTML-Elemente innerhalb des Dokuments wird bei strict
sehr eng gesehen. So müssen alle Elemente innerhalb des body-Elements
in Blockelementen stehen. Ein Text, der ohne umschließende <p>-Tags
direkt zwischen das öffnende und schließende <body>-Tag geschrieben
wird, wird bereits als Verletzung der Syntaxregeln angesehen. Webautoren sind
angehalten, strict DTD so weit wie möglich anzuwenden, es bleibt Ihnen aber überlassen, transitional zu nutzen, wenn für die Präsentation
des Dokuments bestimmte Elemente und Attribute erforderlich sind.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
loose kennzeichnet ein Dokument, in dem Elemente und Attribute
benutzt werden, die als unerwünscht gelten. Wer seine Dokumente auch
für Browser, die Stylesheets noch nicht beherrschen (z.B. Netscape 3),
grafisch und typografisch aufbereiten möchte, wird diese Variante sicherlich
bevorzugen.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
frameset kennzeichnet ein Dokument, das Frames (nicht iframe)
benutzt.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd"> <html>... </html>