Doctype Switching – Wann schaltet welcher Browser in welchen Modus
Wenn es verschiedene Modi gibt, muss man die Browser auch in diese Modi schalten können. Dieses „Umschalten“ wird als Doctype Switching bezeichnet. Wie die Bezeichnung bereits vermuten lässt, benötigt man dazu die Doctype Deklaration. Wie eingangs erwähnt unterscheidet man zwischen 2 verschiedenen Deklarationen, nämlich die mit URI und ohne URI. Genau an dieser Stelle hat man die Möglichkeit die Browser in die verschiedenen Darstellungsmodi zu schalten. Wann genau welcher Browser in welchen Modus umschaltet kann man an dieser Tabelle sehen :
Die Tests dafür stammen von Eric Meyers Doctype Tester
| PC | MAC | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| IE | Mozilla | Opera | IE | Mozilla | Opera | Safari | Konq. | |||||||
| Version | >3 | >6.x | 7 | >0.95 | >1.01 | >5 | >7.1 | 5.x | >0.95 | >1.01 | >7.1 | 0.82 | >0.90 | >3 |
| Unbek. <!DOCTYPE > |
Q | S | S | S | S | S | S | Q | S | S | S | S | S | S |
|
Unbek. <!DOCTYPE > |
Q | S | S | S | S | S | S | Q | S | S | S | S | S | S |
| HTML 2.0 |
Q | Q | S | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q |
| HTML 3.0 |
Q | Q | S | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q |
| HTML 3.2 |
Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q |
| HTML 3.2 + URI |
Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q |
| HTML 4.0 Strict |
Q | S | S | S | S | S | S | S | S | S | S | S | S | S |
| HTML 4.0 Strict + URI |
Q | S | S | S | S | S | S | S | S | S | S | S | S | S |
| HTML 4.0 Trans. |
Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q |
| HTML 4.0 Trans. + URI |
Q | S | S | Q | Q | S | S | S | Q | Q | S | Q | Q | Q |
| HTML 4.0 Frameset |
Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q |
| HTML 4.0 Frameset + URI |
Q | S | S | Q | Q | S | S | S | Q | Q | S | Q | Q | Q |
| HTML 4.01 Strict |
Q | S | S | S | S | S | S | S | S | S | S | S | S | S |
| HTML 4.01 Strict + URI |
Q | S | S | S | S | S | S | S | S | S | S | S | S | S |
| HTML 4.01 Trans. |
Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q |
| HTML 4.01 Trans. + URI |
Q | S | S | S | A | S | S | S | S | A | S | Q | A | A |
| HTML 4.01 Frameset k |
Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q | Q |
| HTML 4.01 Frameset + URI |
Q | S | S | S | A | S | S | S | S | A | S | Q | A | A |
| XHTML 1.0 Strict |
Q | S | S | S | S | S | S | S | S | S | S | S | Q | Q |
| XHTML 1.0 Strict + URI |
Q | S | S | S | S | S | S | S | S | S | S | S | Q | Q |
| XHTML 1.0 Trans. |
Q | S | S | S | A | S | S | S | S | A | S | Q | A | A |
| XHTML 1.0 Trans. + URI |
Q | S | S | S | A | S | S | S | S | A | S | Q | A | A |
| XHTML 1.0 Frameset |
Q | S | S | S | A | S | S | S | S | A | S | Q | A | A |
| XHTML 1.0 Frameset + URI |
Q | S | S | S | A | S | S | S | S | A | S | Q | A | A |
| XHTML 1.0 Strict + XML |
Q | Q | S | S | S | Q | S | S | S | S | S | S | S | S |
| XHTML 1.0 Strict + URI + XML |
Q | Q | S | S | S | Q | S | S | S | S | S | S | S | S |
| XHTML 1.0 Trans. + XML |
Q | Q | S | S | A | Q | S | S | S | A | S | Q | A | A |
| XHTML 1.0 Trans. + URI + XML |
Q | Q | S | S | A | Q | S | S | S | A | S | Q | A | A |
| XHTML 1.0 Frameset + XML |
Q | Q | S | S | A | Q | S | S | S | A | S | Q | A | A |
| XHTML 1.0 Frameset + URI + XML |
Q | Q | S | S | A | Q | S | S | S | A | S | Q | A | A |
| XHTML 1.1 |
Q | S | S | S | S | S | S | S | S | S | S | S | S | S |
| XHTML 1.1 + XML |
Q | Q | S | S | S | Q | S | S | S | S | S | S | S | S |
Mit XHTML 1.0 wurde der so genannte XML Prolog eingeführt. Die XML Deklaration
1 | < ?xml version="1.0" encoding="utf-8"?> |
weißt den Browser darauf hin, dass die Zeichen des folgenden Dokumentes aus der UTF-8 Spezifikation stammen. UTF-8 ist eine Untermenge des ASCII Zeichensatzes.
Da es bereits Unterschiede in der aufgrund des XML Prologs gibt, sind werden zusätzlich auch die Rendermodi mit dem Prolog getestet. In der Tabelle zu erkennen an
XML + … Doctype …
am Ende der Tabelle
Bugs
Fehlerhafte Interpretation des XML Prologs
Die Einführung des XML Prologs hat leider auch einen unangenehmen Nebeneffekt mit sich gebracht. Der Internet Explorer 6/win schaltet, sobald er den Prolog sieht, in den Quirks-Modus und zwar unabhängig von der verwendeten Doctype Deklaration. Dieses Fehlverhalten wurde von den Opera Entwickler ursprünglich übernommen, weshalb also
- Opera 7.0 – 7.03
- IE 6/Win
in den Quirks-Modus schalten.
Seit Opera 7.1 wurde das Verhalten von den Entwicklern wieder korrigiert und der XML Prolog hat keinen Einfluss mehr auf den Darstellungsmodus.
Auch Microsoft hat mit seiner zukünftigen Version des Internet Explorers 7 auf dieses Fehlverhalten reagiert und ein XML Prolog zu Beginn des Quellcode wirft den Browser nicht mehr irrtümlicherweise in den Quirksmodus zurück
Unabhängig vom XML Prolog gibt es einen weiteren Bug, der jedoch nur im Internet Explorer 6 auftaucht, jedoch nicht in den Versionen Opera 7.0 – 7.03
1 | <!-- --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
Platziert man nämlich vor die Doctype Deklaration irgendwelche Zeichen (in diesem Beispiel einen leeren Kommentar), so schaltet der IE6/win in den Quirks-Modus, unabhängig von der verwendeten Doctype Deklaration.
Quellen
- Mozilla (Mozilla Quirks Mode Behavior)
- Microsoft (CSS Enhancements in Internet Explorer 6)
- Opera (The Opera 7 and 8 DOCTYPE Switches)
- IE/mac (Doctype Explained)
- CSS-Stuff (Rendering mode)
- Eric Meyer(Doctype Grid)
- Alistapart (Fixing your Site with the right Doctype)
- Alistapart (New DOCTYPE sniffing in upcoming Mozilla releases)
- Netscape DevEdge (Gecko’s “Almost Standards” Mode)
- Henri Sivonen (Activating the Right Layout Mode Using the Doctype Declaration)
Geschrieben : 17.März 2003
Letztes Update : 20.April 2006
Pingback: CSS-Problem mit IE, FF und Opera ohne Probleme - XHTMLforum
Pingback: fehlerhafte Innenabstände - XHTMLforum
Pingback: Welchen XHTML DOCTYPE sollte man nehmen? - XHTMLforum
Pingback: DIV unabhängig von Elternobjekt positionieren - jswelt - Forum (Javascript, PHP, MySQL, AJAX, Webdesign)
Pingback: Wie dreiteilige Navigation realisieren? Frames? Java? - XHTMLforum
Pingback: AspIErin - Das Wundermittel - jswelt - Forum (Javascript, PHP, MySQL, AJAX, Webdesign)
Pingback: CSS Positionierung rechts im DIV overflow:hidden - jswelt - Forum (Javascript, PHP, MySQL, AJAX, Webdesign)
Pingback: Hilfe bei optimierung/validierung und anderem - jswelt - Forum (Javascript, PHP, MySQL, AJAX, Webdesign)
Pingback: Quirks-Mode - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Quirks-Mode - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Problem mit Grundgerüst - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Probleme mit Darstellung in Browsern mit CSS - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Neben Tabellen schreiben - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Problem mit der Darstellung - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Scrollbare Tabelle Probleme - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Probleme beim Layout - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Skript inkompatibel mit Firefox? - jswelt - Forum (Javascript, PHP, MySQL, AJAX, Webdesign)
Pingback: Unterschiedliche Darstellung: IE vs. Firefox - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: 2 kleine Probleme - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Probleme bei Anzeige im Internet Explorer - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: margin-top -> Seltsames Verhalten - html.de Forum - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Padding, Margin und width: 100% - html.de Forum - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: DOCTYPE <-----was bedeuted das ?? - html.de Forum - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Frage zu Box-Model Problem - html.de Forum - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Div im IE nicht angezeigt - html.de Forum - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Darstellungsprobleme im Firefox - html.de Forum - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: www.w3.org... - html.de Forum - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Div Layer - html.de Forum - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Help! Problem mit onclick und IE - jswelt - Forum (Javascript, PHP, MySQL, AJAX, Webdesign)
Pingback: Mal wieder der Internetexplorer - XHTMLforum
Pingback: Anonymous
Pingback: Anonymous
Pingback: Anonymous
Pingback: Anonymous
Pingback: Anonymous
Pingback: Anonymous
Pingback: Anonymous
Pingback: Zeitgemässe Alternative für "background" - Seite 2 - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Hilfe Neuling ;o) - Seite 2 - html.de Forum - HTML für Anfänger & Fortgeschrittene
Pingback: Anonymous
Pingback: Technik des Webdesigns, wie kann man das Erstellen von Webseiten lernen?
Pingback: Anonymous
Pingback: brauche dringend hilfe
Pingback: Portfolio bewerten
Pingback: Portfolio bewerten