molily: CSS um in IE ".xml" als XHTML anzeigen zu lassen

Beitrag lesen

Hallo,

ich möchte derzeit eine Website in XHTML 1.1 verfassen, allerdings die "echte" XML-parsing engine der neueren Browser verwenden.

Im Forumsarchiv wirst du einige Diskussionen über die Verwendung von XHTML 1.1 und der Nutung der XML-Parser in modernen Browsern finden.

Dazu ist es bei einigen Browsern nötig, de Dateiendung nicht auf ".xhtml" sondern ".xml" zu setzen... Leider frißt der IE6 diese dann nichtmehr, sondern beschwert sich über das fehlende CSS.

MSIE kennt kein XHTML als XML-Anwendung. Das steht fest und lässt sich auch nicht dadurch kompensieren, ein Stylesheet einzubinden. Dir bleibt nichts anderes übrig, als MSIE eine gewöhnliches HTML-Dokument bzw. HTML-kompatibles XHTML 1.0 als text/html auszuliefern. Anderen Browsern, die bie der HTTP-Anfrage ausdrücklich application/xhtml+xml im Accept-Header angeben, kannst du hingegen durch diesen MIME-Typ anweisen, den XML-Parser zu verwenden.

aber eleganter wäre es doch, wenn ich ein CSS spezifizieren könnte, das die Layout-Angaben für einfaches XHTML enthält, IE quasi mit dem füttern, was jeder andere Browser sowieso kann...

Damit wirst du nicht weiterkommen. Ein CSS-Stylesheet enthält Informationen darüber, wie die einzelnen Elemente im CSS-Boxmodell grafisch umgesetzt werden. Zur Darstellung und Interpretation eines XHTML-Dokuments muss der Browser die Bedeutung der Elemente verstehen. Diese kann man ihm nicht über ein Stylesheet mitteilen. Man kann ihm schon gar nicht mitteilen, »was jeder andere Browser sowieso kann«, denn das ist nicht durch ein Stylesheet ausdrückbar, sondern fest in die Browser einprogrammiert. Zum Beispiel kannst du auf keine Weise im Stylesheet festlegen, dass der Inhalt des title-Elements als Dokumentitel behandelt werden soll (und etwa in der Titelleiste erscheint). Dasselbe gilt für Meta-Elemente, Stylesheets, Scripte. Weiter geht es mit Hyperlinks, Bildern/Objekten, Formularelementen und diversen Attributen. Wenn du MSIE ein generisches XML-Dokument mit Elementen aus dem XHTML-Namespace vorsetzt, ist ihm die Bedeutung der Elemente unbekannt. Daran kannst du nicht rütteln.

Mathias