CSS 2.1 ::Grundlegendes

Der Dokumententyp

Die Deklaration !DOCTYPE ist eine SGML- Deklaration, die die Dokumententyp- Deklaration (DTD) eines Webdokuments spezifiziert.

Für den Webautor, der robuste und standardskompatible Websites erstellen will, ist der Dokumententyp von entscheidender Bedeutung für die Darstellung durch die heutigen Browser. Wenn man berücksichtigt, wie weit die modernen Browser bereits an die geltenden Standards angepasst sind, erkennt man auch, dass man ohne die Deklaration des Dokumententyps keinen ausreichenden Einfluß auf die Darstellung eines Webdokuments mehr hat. Der Vorgang, mit Hilfe des Dokumententyps die Darstellung eines Webdokuments zu beeinflussen, wird 'DOCTYPE- Switching' genannt.

Doch bevor wir in die Einzelheiten des DOCTYPE- Switching einsteigen, wollen wir uns erst einmal die Dokumententypen ansehen, um die es dabei geht.
TOP

DOCTYPE- Deklarationen

Heute besteht jede vollständige Dokumententyp- Deklaration aus vier Teilen:

  1. Die Bezeichnung !DOCTYPE, die die eigentliche Deklaration darstellt.
  2. Das Wort html, welches das Stammelement des Webdokuments bezeichnet. Das ist allerdings mehr für XML von Bedeutung, denn dort kann man das Stammelement frei benennen, z. B. lattemacchiato.
  3. Der dritte Teil ist die Angabe des Dokumenttyps (der sog. Formal Public Identifier oder FPI), in Anführungszeichen und in der Regel durch ein vorangestelltes PUBLIC gekennzeichnet.
  4. Last but not least die URI, unter der das Anwendungsprogramm die Dokumenttyp- Definitionen findet. Die URI wird auch als System Identifier bezeichnet.

Die gesamte Deklaration kann in einer Zeile zusammen gefasst werden, aber auch auf mehrere Zeilen verteilt sein. Tiefergehende Hintergründe zum Thema 'Dokumententypen' findet man bei SelfHTML unter Dokumenttyp- Angaben.
TOP

Gültige Dokumententyp-Deklarationen:

Hier folgt eine Liste möglicher Dokumententypen und ihrer Deklarationen. Um eine konsistente Darstellung von Websites zu gewährleisten, sollte man stets einen dieser Dokumententypen mit URI verwenden.

HTML 4.01 hat seinerzeit HTML 4.0 ersetzt, deshalb sind auch die Dokumententypen für HTML 4.0 heute ungültig.

    Der Vollständigkeit halber sind am Ende noch einige der alten, heute ungültigen, DOCTYPE- Deklarationen aufgeführt:

Gültige HTML-Version Dokumententyp-Deklaration
XHTML Mobile 1.0 <!DOCTYPE
html
PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
XHTML 1.1: <!DOCTYPE
html
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
XHTML 1.0 Strict: <!DOCTYPE
html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional: <!DOCTYPE
html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset: <!DOCTYPE
html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
HTML 4.01 Strict: <!DOCTYPE
HTML
PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional: <!DOCTYPE
HTML
PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset: <!DOCTYPE
HTML
PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 individualisiert (ist nicht Standard!): <!DOCTYPE
html
PUBLIC "-//thestyleworks.de//DTD XHTML 1.0 Custom//EN"
"/dtd/xhtml1-custom.dtd">
Veraltete HTML-Version  
HTML 3.2: <!DOCTYPE HTML
PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
HTML 2.0: <!DOCTYPE HTML
PUBLIC "-//IETF//DTD HTML 2.0//EN">
Proprietär: <!DOCTYPE HTML
PUBLIC "-//Netscape Comm. Corp.//DTD HTML//EN">
Proprietär: <!DOCTYPE HTML
PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 HTML//EN">

DOCTYPE- Switching

Moderne Browser können Websites auf zwei mögliche Arten darstellen: im sogenannten Quirksmodus oder im Standardsmodus. Der Quirksmodus (engl. 'quirks' = Marotten, Schrullen) ist rückwärtskompatibel und emuliert die oft fehlerhafte Darstellung veralteter Browser. Im Standardsmodus orientieren sich die Browser am heute gültigen (und normierten) Standard im Web. Für jede Website wird vom Browser einer dieser Modi zur Darstellung ausgewählt, abhängig davon, ob ein Dokumententyp auf der Website vorhanden und ob die URI darin mit angegeben ist. Dieser Weg, durch Eintragung oder Weglassung eines Dokumenttyps die Darstellung einer Website zu beeinflussen, wird Doctype Switching genannt.

Warum musste überhaupt so eine relativ komplizierte Regelung gefunden werden?
TOP

Das Problem

Bevor die Gewohnheit, valides Layout zu schreiben, sich durchzusetzen begann, wurden Websites oft für den einen oder anderen Browser 'optimiert', z. B. Netscape 4 oder Internet Explorer 3 oder 4. Dazu gehörten die Verwendung proprietärer HTML- Elemente oder von Attributen, die heute missbilligt sind, ebenso wie das bewusste Bauen auf bekannte Browserfehler und, vor allem, die unvermeidliche Browserweiche.

Diese alten Websites erfüllten noch nicht die W3C- Standards und sehen in den modernen Browsern auch dementsprechend schlecht aus. Umgekehrt werden die heute nach den geltenden Standards erstellten Websites in den alten Browsern nicht richtig dargestellt.
TOP

Die Lösung

Es konnte natürlich nicht sein, dass das Layout der bis dato produzierten Websites in den neuen Browsern plötzlich nicht mehr wie vorher funktionierte. Also mussten zwei unterschiedliche Darstellungmodi her: einer für die neuen Websites und einer für die alten Websites. Und es musste ein Weg gefunden werden, durch den der Browser feststellt, in welchem Modus er ein Webdokument darstellen soll.

Die Lösung war einfach: alte Websites haben entweder eine alte, eine unvollständige oder gar keine Dokumententyp - Deklaration. Für standardskompatible Websites wird davon ausgegangen, dass sie eine neue und vollständige DOCTYPE- Deklaration aufweisen. Deshalb wurde der Doctype zum Dreh- und Angelpunkt der Darstellungsmodi gemacht. Der Vorgang, bei dem der Browser aufgrund des Dokumententyps den entsprechenden Darstellungsmodus auswählt, erhielt die Bezeichnung DOCTYPE- Switching (engl. 'switching' = umschalten).

Die folgende Tabelle gibt eine Übersicht der Darstellungsmodi in allen gültigen und einigen alten Doctypes. Gültig sind heute die Dokumententypen für HTML 4.01 und XHTML, alle anderen sind überholt und sollten nicht mehr verwendet werden.
TOP

Dokumententyp URI
vorh.?
IE/Win 6.0+
IE/Mac 5+
NN 7+
Moz 1.0.1+
Opera 7+
 
XHTML 1.1 Standards Standards Standards
XHTML 1.0 strict Ja Standards Standards Standards
XHTML 1.0 strict Nein Standards Standards Standards
XHTML 1.0 transitional Ja Standards Almost-Standards Standards
XHTML 1.0 transitional Nein Standards Almost-Standards Standards
XHTML 1.0 frameset Ja Standards Almost-Standards Standards
XHTML 1.0 frameset Nein Standards Almost-Standards Standards
HTML 4.01 strict Ja Standards Standards Standards
HTML 4.01 strict Nein Standards Standards Standards
HTML 4.01 transitional Ja Standards Almost-Standards Standards
HTML 4.01 transitional Nein Quirks Quirks Quirks
HTML 4.01 frameset Ja Standards Almost-Standards Standards
HTML 4.01 frameset Nein Quirks Quirks Quirks
HTML 4   (HTML 4 wurde durch HTML 4.01 ersetzt und damit auch die Dokumententypen.)
HTML 3.2 mit und ohne URI Quirks Quirks Quirks
HTML 3.0 mit und ohne URI Quirks Quirks Quirks
HTML 2.0 mit und ohne URI Quirks Quirks Quirks
Kein Dokumententyp vorhanden Quirks Quirks Quirks

Wie man sieht, verhalten sich die gängigsten der heutigen Browser bei der Darstellung verschiedener Dokumententypen im großen und ganzen gleich. Opera hat das Konzept des Doctype- Switching erst mit der Version 7 eingeführt und orientiert sich dabei am Internet Explorer. Man kann davon ausgehen, dass Opera bis zur Version 6 alle Websites im Standards- Modus oder ähnlich darstellt. Weitere Browser, die mit DOCTYPE- Switching arbeiten, sind die auf der Gecko- Engine basierenden Firefox, Galeon und Camino sowie der Apple- Browser Safari (und damit auch der Omniweb- Browser für Mac).
TOP

Mozilla's Almost- Standards- Mode

Erwähnt werden muss noch der Almost- Standards- Modus der Gecko- Engine. Dieser Modus stimmt bis auf einen einzigen, aber wichtigen, Punkt mit dem Standards- Modus überein: Grafiken innerhalb von Tabellen werden so wie im Quirksmodus dargestellt. Das bedeutet: der Browser missachtet die durch CSS 2.1 vorgeschriebene vertikale Ausrichtung der Grafiken. Dadurch werden die Lücken zwischen zerschnittenen Grafiken in tabellen- basierten Layouts geschlossen, die bei korrekter Auslegung des Standards vorhanden sind. Diese Darstellung entspricht weitgehend der Darstellung des IE/Win 6, die durch Opera kopiert wird/wurde. Der Almost- Standards- Modus wurde in Version 1.0.1 des Mozilla eingeführt, um Kompatibilität mit dem IE/Win zu erreichen.
TOP

Der XML- Prolog

Weil XHTML 1.0 auf XML basiert, kann vor der Doctype- Deklaration zusätzlich eine XML- Deklaration notiert werden, die folgendermaßen aussehen kann:

<?xml version="1.0" encoding="ISO-8859-1; ?>

Oder beispielsweise so:

<?xml version="1.0" encoding="utf-8" standalone="yes">

Diese Deklaration hat keinen Einfluß auf die Darstellung einer HTML- oder XHTML- Website durch standardgetreue Browser wie Opera 6+, Netscape 7+ oder Firefox. Jeder dieser Browser wird die entsprechende Website in dem Modus darstellen, der durch den Dokumententyp vorgegeben ist.

Anders sieht es beim IE/Win bis Version 6 aus. Dort muss die Deklaration des Dokumententyps in der ersten Zeile der Datei stehen, anderenfalls weicht der Browser immer auf den Quirksmodus aus. Das ist von besonderer Bedeutung, da die große Mehrheit aller Surfer den Internet Explorer verwendet.

Was kann man tun?

Wenn Sie sicherstellen wollen, dass Ihre Webseiten durch alle modernen Browser etwa gleich dargestellt werden, haben Sie mehrere Optionen:

Letztendlich ist aber das einfache Weglassen des XML- Prologs kein Problem. Die XHTML-1.0- Spezifikation enthält gar nichts über den XML- Prolog und durch XML 1.0 wird er als "optional" eingestuft. Das bedeutet, dass er selbst in XML- Dokumenten problemlos ausgelassen werden kann.

Nachtrag 15.Sep.2005:
Für die Version 7 des IE/Win hat Microsoft das Problem gelöst. Von dieser Version an kann der XML- Prolog problemlos vor dem Dokumententyp stehen. IE/Win 7 fällt dadurch nicht mehr zwangsweise in den Quirksmodus.
TOP


Home|Vollreferenz|Schnellreferenz|Grundlegendes|Tutorials & Artikel|Quiz|Allgemeines

© Copyright All Contents 2002-2023
Commercial Use prohibited.


Notizen: