TYPO3: XHTML Bug im IE6 umgehen
Author: Ing. Michael Fürst (m.fuerst@bluegate.at)
Web: http://www.bluegate.at
Publiziert: November 2006
Darstellungsfehler im Internet Explorer
Wird ein Dokument nach dem W3C Standard XHTML Transistional 1.0 oder XHTML Strict 1.0 formatiert und mit TYPO3 ausgeliefert, hat der Internet Explorer mit der Darstellung seine liebe Not. Meist stimmt die Ausrichtung von DIV Tags bzw. des gesamten Body's nicht oder bestimmte Style-Rules werden einfach ignoriert.
Der Verursacher: Die Reihung der Dokumentendeklaration
Hält man sich strikt an die Vorgaben des W3C, muss eine 100% korrekte Deklaration eines Dokuments folgendermaßen ausgeprägt sein:
Korrekte Deklaration eines XHTML Dokuments nach W3C:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Dass heisst, dass zuerst die einleitende XML Deklaration steht und DANACH erst die Definition des Dokumententyps und der anzuwendenden Data Type Definition. Und genau hier liegt das Problem des Internet Explorers 6. Wird diese (korrekte) Reihenfolge angewandt, ist der IE nicht in der Lage, bestimmte Elemente korrekt darzustellen - es kommt zu Verschiebungen.
Gelöst werden kann dieses Problem durch einen kleinen Kniff: Man "verletzt" die W3C Vorschriften und dreht die Deklarationen einfach um.
Für den IE 6 korrekte (wenn auch nach W3C invalide) Deklaration eines XHTML Dokuments (umgedrehte Anordnung):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?xml version="1.0" encoding="iso-8859-1"?>
Und schon werden alle Elemente auch im Internet Explorer korrekt dargetstellt. Bleibt nur noch die Frage, wie man dieses "Umdrehen" der Zeilen in TYPO3 erreichen kann.
Deklarationszeilen in TYPO3 umdrehen
Glücklicherweise handelt es sich bei diesem Bug um einen, der schon seit längerer Zeit bekannt ist. Somit ist TYPO3 (oder besser TYPOScript) schon von Haus aus mit einem Konfigurationsparameter ausgestattet, der das Umdrehen der beiden Zeilen schnell und unkompliziert ermöglicht:
TYPOScript Parameter zum Drehen der Deklarationszeilen:
config.doctype = xhtml_trans
config.xhtml_cleaning = all
config.htmlTag_langKey = de
config.doctypeSwitch = true // <- Dreht die Deklarationszeilen
Kaum ist dieser Parameter in den entsprechenden Templates gesetzt, werden die beiden Zeilen in umgedrehter Reihenfolge ausgeliefert.




















