CSS um in IE ".xml" als XHTML anzeigen zu lassen
Robert Kosten
- css
0 molily-2 Robert Kosten0 molily
Hi,
ich möchte derzeit eine Website in XHTML 1.1 verfassen, allerdings die "echte" XML-parsing engine der neueren Browser verwenden. 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. Nun könnte ich natürlich einfach ein CSS schreiben, daß diese spezielle Datei behandelt (Letztendlich eh' der beste Grund, die xml-render-engine statt der für html zu nutzen), 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... Weiß jemand, ob und wo ich so eine basis-xhtml.css herbekommen könnte?
Gruß,
Robert
PS: Ich habe den link auf meine Testdatei mal angehängt...
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
Im Forumsarchiv wirst du einige Diskussionen über die Verwendung von XHTML 1.1 und der Nutung der XML-Parser in modernen Browsern finden.
Im Forumsarchiv findet man viel, insbesondere unnützen Müll... Es ist nicht so, daß ich das nicht vorher probiert hätte...
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.
Der MIME-type wird leider auch von anderen Browsern gern mal ignoriert, deshalb der umweg über die Dateiendung. Und das IE XHTML als fehlerhaftes HTML4 auffaßt ist mir bekannt, ich will ihn nur dazu bringen, eine Datei mit Endung .xml genauso zu behandeln... Oder die Seiten zumindest sehen...
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.
Ich bin kein Script Kiddie, ok? Danke für den Link, das ist genau das, was ich gesucht habe... Das das nicht alles funktionieren wird, war mir klar, Ich will die Seiten aber wenigstens angezeigt bekommen...
Hallo,
Der MIME-type wird leider auch von anderen Browsern gern mal ignoriert, deshalb der umweg über die Dateiendung.
Welcher Browser ignoriert den MIME-Typ text/html bzw. (angeforderten) application/xhtml+xml?
Und das IE XHTML als fehlerhaftes HTML4 auffaßt ist mir bekannt, ich will ihn nur dazu bringen, eine Datei mit Endung .xml genauso zu behandeln...
Was denn nun? Gerade wolltest du noch unbedingt den XML-Parser nutzen. Wenn MSIE .xml als HTML-kompatibles XHTML verarbeiten soll, dann sende die Ressource als text/html.
Oder die Seiten zumindest sehen...
Wie gesagt.
Danke für den Link, das ist genau das, was ich gesucht habe... Das das nicht alles funktionieren wird, war mir klar, Ich will die Seiten aber wenigstens angezeigt bekommen...
Damit wirst du trotzdem keine »Webseite in XHTML 1.1 schreiben« können, wenn man annimmt, dass eine Webseite Hyperlink, Bilder usw. enthält.
Mathias