HTML ist die universelle Sprache für die Veröffentlichung von Hypertext im World Wide Web [1]. Von 1982, als Tim Berners-Lee SGML vereinfachte, um die ursprüngliche Definition von HTML zu etablieren, bis zur Veröffentlichung der XHTML1.1-Spezifikation im Jahr 2001 hat sich HTML zu einem internationalen Standard mit mehreren Versionen entwickelt [2]. Jede Version der Spezifikation ist in einer maschinenlesbaren Sprache definiert, die die rechtliche Struktur, Elemente und Attribute beschreibt. Dies ist die Document Type Definition (DTD).
DTD beschreibt die Dokumenttypdeklaration (DTD-Deklaration, doctype[3] genannt), die sich am Anfang des HTML-Dokuments befindet. Sie ist die Verbindung zwischen dem Dokument und der DTD-Anweisung. Der Dokumenttyp von HTML4.01 Strict lautet beispielsweise:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd ">
Es gibt die vom Dokument verwendete HTML-Version an. Dies ist die wichtigste Information, die Tools wie Browser beim Parsen des Dokuments benötigen. Beispielsweise können die Validierungstools des W3C damit die Syntax überprüfen und auf Fehler hinweisen.
Die falsche Implementierung von Standards in frühen Browsern, die Verbreitung privater Erweiterungen und die Verwirrung der frühen Standards selbst hinsichtlich der Vorwärtskompatibilität führten dazu, dass Dokumente zu dieser Zeit weder Doctypes noch direkte Verweise auf DTDs hatten, was auch die Implementierung neuer Standards erschwerte . gewann an Akzeptanz und Popularität, weil Browser sie nicht unterscheiden konnten. Um mit Webseiten, die nach Webstandards erstellt wurden, und Webseiten, die nach alten Praktiken erstellt wurden, umzugehen, schlug Todd Fahrner 1998 die Methode „kam mit einem Umschalter“ vor [4], die es dem Browser ermöglicht, zwei Sätze von Rendering-Modi bereitzustellen : Das heißt, mit einem vollständigen Dokumenttyp werden Dokumente nach W3C-Standards analysiert, andernfalls werden sie auf die alte Art und Weise analysiert.
Diese Methode ist praktisch, einfach und effektiv. Zwei Jahre später wurde es erstmals in der Mac-Version des IE verwendet und bald von anderen Browserherstellern übernommen. Daraus entstand das Doctype-Sniffing (Doctype-Sniffing oder Doctype-Switching). Der Browser entscheidet damit, ob seine Engine den Standardmodus, den Quasi-Standardmodus oder den Quirks-Modus übernehmen soll, was große Auswirkungen auf das HTML- und CSS-Parsing, das CSS-Layout und JavaScript-Skripte haben wird [5]. Es besteht kein Zweifel, dass wir so oft wie möglich das Standardmodell verwenden sollten.
Obwohl sich HTML5 noch im Entwurfsstadium befindet, haben die neuesten Browser Firefox3.5, Chrome2, Safari4 und IE8 begonnen, einige Funktionen zu unterstützen. Insbesondere die Veröffentlichung von Google Wave hat einen neuen Aufschwung bei der Förderung der HTML5-Praxis ausgelöst. HTML5 basiert nicht auf SGML und hat keine DTD, aber aus Gründen der Vorwärtskompatibilität akzeptiert es die Tatsache des Doctype-Sniffings und definiert, dass Doctype die einzige Moduskonvertierungsanweisung in Text/HTML ist und keine andere Verwendung hat. Sein Doctype ist so prägnant: <!doctype html>[6].
Es ist erwähnenswert, dass IE8 die X-UA-Compatible-Anweisung [7] übernimmt, um die Vorwärtskompatibilität zu lösen. Daher hängt der Rendering-Modus des Browsers in IE8 nicht nur vom Doctype-Sniffing ab, sondern auch von der X-UA-Compatible-Anweisung Dies macht die Musterbeurteilung nicht nur komplexer [8], sondern verstößt auch gegen die Idee der progressiven Verbesserung im Webdesign [9].
Auf dem Weg zu Webstandards brauchen wir nicht nur Vorwärtskompatibilität voller Realismus, sondern auch Abwärtskompatibilität voller Idealismus. Dies ist die Hoffnung, dass unser Web in Zukunft ordnungsgemäß funktionieren kann. Unter dem Gesichtspunkt von Standards, Einfachheit und schrittweiser Verbesserung könnte die beste Lösung für unsere Seite derzeit sein:
<!doctype html> … <meta http-equiv="X-UA-Compatible" content="IE=Edge"> …
Notiz:
[1] HTML ist die Verkehrssprache für die Veröffentlichung von Hypertexten auf der Welt
Breites Web
[2] http://zh.wikipedia.org/wiki/Html
[3] Die DTD-Deklaration wurde in früheren Spezifikationen oft als Dokumenttypdeklaration bezeichnet.
Es kann leicht mit DTD verwechselt werden.
[4] http://web.archive.org/web/20030212115103/http://www.geocrawler.
com/archives/list-name.mbox/123/1998/7/0/1037920/
[5]Browsermodus mit doctype aktivieren
[6] http://www.w3.org/TR/html5/syntax.html#the-doctype
[7] Über Dokumenttypen hinaus ist die Webstandardisierung vorwärtskompatibel mit IE8
[8] http://dancewithnet.com/2009/06/14/activating-browser-modes
-with-doctype/#ie8modes
[9] Hängt die Zukunft der Webstandards von der Browsertechnologie ab?
Originaltext: http://ued.koubei.com/?p=928