Der Doctype steht am Anfang einer HTML-Seite und definiert die HTML-Version.
Der Doctype in Html5 ist kürzer und somit einfacher.
<!doctype html>
siehe auch Wiki siehe auch: alle Doctypes unter Total Validator und Mediavent
Im Laufe der Geschichte hat es verschiedene HTML Versionen gegeben. Für jede Version gibt es eigene Standards, formuliert durch das w3-Konsortium. Moderne Browser können in 3 Zustände umschalten, um die Seiten je nach Version (bestimmt durch den Doctype) darzustellen.
Im Gegensatz zu dem neuen Doctype von HTML5 wird in den alten Doctypes die Markup Rahmentechnologie wie SGML oder XML vorgegeben. HTML5 wird aber nicht mehr mit Hilfe des Rahmenwerks von SGML definiert Er soll für alle künftigen Versionen gelten und ist ein Konzession an ältere Browser.
Moderne Browser verwenden das sogenannte „Doctype Sniffing“ (oder Doctype Switching), um zu entscheiden, wie sie eine Webseite darstellen sollen. Neben dem Quirks-Modus und dem Standardmodus gibt es noch eine dritte Zwischenstufe den Fast-Standardmodus.
Hier ist die Übersicht, welcher Modus bei welchen Doctypes ausgelöst wird:
In diesem Modus verhält sich der Browser wie ein sehr alter Browser (z. B. Internet Explorer 5), um alte Webseiten aus den 90ern nicht zu „zerbrechen“. Das Layout folgt hier oft nicht den offiziellen CSS-Standards (bekanntestes Beispiel ist der fehlerhafte Box-Model-Bug).
Wird ausgelöst durch:
Fehlender Doctype: Wenn die allererste Zeile im HTML-Code leer ist oder direkt mit <html> beginnt.
Veraltete/Unvollständige Doctypes:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> (ohne die URL zum System-Identifier).
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
XML-Deklaration vor dem Doctype: Im alten Internet Explorer 6 führte selbst ein korrekter Doctype zum Quirks-Modus, wenn davor eine Zeile wie <?xml version="1.0" ... ?> stand.
Dies ist der moderne Modus. Der Browser hält sich strikt an die W3C-Spezifikationen für HTML und CSS.
Wird ausgelöst durch:
Der moderne HTML5 Doctype: <!DOCTYPE html> (Die empfohlene Variante für alle neuen Seiten).
Vollständige „Strict“-Doctypes:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Dieser Modus wurde eingeführt, um eine kleine Eigenheit bei Tabellenzellen zu bewahren (betrifft die vertikale Ausrichtung von Bildern in Tabellen), folgt ansonsten aber dem Standardmodus.
Wird ausgelöst durch:
Transitional-Doctypes mit URL:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Ab HTML5 sind eigentlich keine neuen Versionen geplant, sondern es soll eine zwanglose Weiterentwicklung geben. Es ist so, dass die Browserhersteller neue Funktionalitäten entwickeln und wenn diese gut sind, gehen sie in die Standardentwicklung ein und nicht umgekehrt.
Auf der Seite caniuse kann man nachschauen, welche neuen HTML oder CSS Funktionen man ab welcher Browserversion nutzen kann.
Siehe hierzu auch das Thema HTML5 und ältere Browser