Einsatz von DOCTYPE-Switching

(Auszug aus "CSS − Anspruchsvolle Websites mit Cascading Stylesheets" von Rachel Andrew & Dan Shafer)

Webseiten, die ursprünglich für ältere Browser entwickelt wurden, sehen in neueren Browsern manchmal richtig hässlich aus oder werden möglicherweise überhaupt nicht angezeigt. Unsauberes HTML, das noch von früheren Browsern akzeptiert wurde, hält den neueren und zugleich strengeren HTML-Standards in moderneren Browsern häufig nicht mehr stand. Aber auch das Gegenteil ist oft der Fall. Seiten, die für neuere Browser entwickelt werden, sehen in älteren Browsern entweder fehlerhaft aus oder werden erst gar nicht angezeigt.

Die Browser IE 5 für Macintosh, IE 6 für Windows, Firefox und Safari unterstützen eine Technik namens DOCTYPE Switching. Vereinfacht gesprochen, können die Browser die Charakteristiken ihrer Darstellung an die Definition des Dokumenttyps, die sogenannte DOCTYPE-Deklaration, anpassen, wenn sie diese Deklaration am Anfang einer Webseite finden.

Eigentlich war die DOCTYPE-Deklaration immer schon Bestandteil von HTML und es wurde immer empfohlen, diese Deklaration in Webseiten einzubinden. Von den Entwicklern wurde es jedoch lange ignoriert und von den Browserherstellern nicht unterstützt. Deshalb kann das Aktualisieren Ihrer Webseiten ein ordentliches Stück Arbeit werden. Mit einem guten Editier- oder Design-Werkzeug geht es erheblich leichter.

Ein Browser, der die DOCTYPE eines Dokuments ausliest, kann eine Seite in zwei verschiedenen Varianten interpretieren: einmal im Standardmodus, »Strict mode« genannt, und einmal im Übergangsmodus, »Quirks«-Modus. Wird der Standardmodus vorgegeben, wird die Datei streng nach dem ebenfalls in der Anweisung benannten HTML-Standard interpretiert. Beim »Quirks«-Modus ist der Browser toleranter und flexibler in der Standardauslegung.

Es empfiehlt sich, diese Technik bei neuen Seiten anzuwenden und auch auf älteren Seiten DOCTYPE-Anweisungen nachträglich hinzuzufügen. Benutzen Sie auf einer Seite eingebettete oder externe Stylesheets, sollten Sie dafür den Standardmodus auswählen. Unser Beispiel zeigt eine entsprechende Anweisung für den HTML-4.0-Standard:

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

Die entsprechende DOCTYPE-Anweisung für den neueren XHTML-1.0-Standard lautet:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Falls Ihre Seiten CSS nicht unterstützen und stattdessen veraltete HTML-Tags und -Attribute verwenden, können Sie mit der folgenden DOCTYPE-Anweisung den Übergangsmodus einstellen und damit sichergehen, dass auch moderne Browser Ihre älteren Seiten korrekt anzeigen:

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

Wenn Sie lieber mit XHTML 1.0 arbeiten, sollten Sie die folgende Notation benutzen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Beachten Sie, dass der zweite Teil der beiden letzten DOCTYPE–Deklarationen sich auf die »durchlässigere« Version bezieht. Dadurch können die Browser, die DOCTYPE-Switching unterstützen, in den »Quirks«-Modus wechseln und die Seiten korrekt wiedergeben, ohne dem HTML-Standard gerecht zu werden.

Falls ein valides Dokument in neueren Browsern unterschiedlich dargestellt wird, prüfen Sie zuerst, ob der »Strict mode« eingeschaltet ist. Unglücklicherweise benötigt der Internet Explorer eine besondere Schreibweise für die DOCTYPE–Anweisung, um in den Übergangsmodus zu wechseln. Zusätzlich zu der Auswahl der Transitional-Version von HTML 4.0 muss der URL-Teil weggelassen werden:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

Sobald irgendeine URL im DOCTYPE angegeben wird, benutzt der Internet Explorer automatisch den Standardmodus, ohne überhaupt die Definition näher zu beachten. Ebenso verhält er sich bei einer XHTML-Deklaration. Wenn Sie den »Quirks«-Modus benutzen wollen, müssen Sie die obige DOCTYPE-Erklärung benutzen.

Wenn gar keine DOCTYPE-Anweisung angegeben ist, schalten die meisten Browser, der IE 6 eingeschlossen, in den toleranten Übergangsmodus. Da jedoch laut HTML- und XHTML-Spezifikation DOCTYPE in jedem Dokument definiert werden sollte, sollte man sich als Entwickler daran halten.

In diesem Buch habe ich mich bemüht, Ihnen reines, standardkonformes XHTML 1.0 zu präsentieren, außer an den Stellen, wo Codebeispiele für ältere Browser gezeigt werden. Alle Beispieldokumente besitzen daher den gleichen Anfang:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Hier kommt der Titel der Seite hin.</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Wie Sie sehen, wird mit der DOCTYPE-Deklaration in der erste Zeile sichergestellt, dass alle neueren Browser im standardkonformen Modus arbeiten.

Der XML-DOCTYPE-Switching-Bug im Internet Explorer
XML-Puristen wundern sich vielleicht, warum unser XHTML-Dokument nicht mit der folgenden typischen XML-Versionsdeklaration beginnt:

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

Tatsächlich ist im XML-Standard festgehalten, dass jedes XML-Dokument mit einer <?xml ... ?>-Deklaration beginnen sollte, auf die dann die DOCTYPE-Deklaration folgt.

Unglücklicherweise führt sie aber zu Problemen mit dem Internet Explorer 6. Ist eine <?xml ... ?>-Deklaration in einem Dokument vorhanden, oder steht irgendetwas anderes vor der DOCTYPE-Deklaration, möglicherweise Leerzeichen oder Zeilenumbrüche, ignoriert er einfach die DOCTYPE-Deklaration und geht in den »Quirks«-Modus. Aus diesem Grund sollte man die XML-Versionsdeklaration weglassen, damit die beste CSS-Unterstützung für alle Browser sichergestellt ist.

Zum Glück erlaubt der XML-Standard, diese Instruktion wegzulassen. Zu besonderen Problemen führt das nicht, und unser XHTML funktioniert in den meisten Fällen einwandfrei.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema CSS bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2006 der deutschen Übersetzung dpunkt.verlag GmbH
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "CSS − Anspruchsvolle Websites mit Cascading Stylesheets" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

dpunkt.verlag GmbH, Ringstraße 19, 69115 Heidelberg