Alwin Meschede: XHTML - Formatieren mit CSS im IE

Hallo,

um beim InternetExplorer die Baumstruktur bei der Darstellung von XHTML zu unterdrücken, muss man bekanntlich ein CSS-Stylesheet oder ein XSLT-File angeben. Im ersten Anlauf der Umstellung meiner Homepage auf XHTML habe ich einfach mal das CSS-Sheet genommen, mit dem ich auch die HTML-Version der Site formatiere. Das Ergebnis nach  ersten Prüfungen war, dass Links zwar schön farbig hervorgehoben waren, aber nicht anklickbar waren (der Mauszeiger verwandelte sich nicht in eine Hand), Grafiken wurden generell nicht angezeigt und <hr>-Trennlinien auch nicht. Anscheinend ist es so, dass der IE auch solche Weisheiten wie "Text in <b></b>-Tags bitte mit font-weight:bold darstellen" in dem XHTML-CSS haben möchte. Aber wieso weiß er nicht, was in der XHTML-Datei die Links sind? Kann mir vielleicht jemand mal ein Beispiel-CSS mailen?

Wenn ich's nicht hinkriege mache ich eben eine Anti-Microsoft-Homepage ("optimiert für alles außer MSIE")

  1. hi

    Das Ergebnis nach  ersten Prüfungen war, dass Links zwar schön farbig hervorgehoben waren, aber nicht anklickbar waren (der Mauszeiger verwandelte sich nicht in eine Hand), Grafiken wurden generell nicht angezeigt und <hr>-Trennlinien auch nicht. Anscheinend ist es so, dass der IE auch solche Weisheiten wie "Text in <b></b>-Tags bitte mit font-weight:bold darstellen" in dem XHTML-CSS haben möchte.

    klingt für mich, als ob der MSIE nicht erkennt, dass das hier XHTML ist, was eigentlich ein globales Stylesheet haben sollte.... Mit welchem Mine- und DOCTYPE arbeitest du?

    Grüße aus Bleckede

    Kai

  2. hallo,

    Aber wieso weiß er nicht, was in der XHTML-Datei die Links sind?

    doctype angabe richtig notiert?

    -------- datei mit endung html bzw. als xhtml gespeichert ----------
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <link rel="stylesheet" type="text/css" href="ie-xhtml.css" />
    <title xml:lang="en">test</title>
    </head>
    <body xml:lang="de">
    <p>Der Link: <a href="http://selfaktuell.teamone.de/index.htm">http://selfaktuell.teamone.de/index.htm</a> f&#252;hrt auf die Seite von Selfaktuell</p>

    </body>
    </html>
    ----------------------------------------------

    ------------ datei als xml gespeichert -------------
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <?xml-stylesheet type="text/css" href="ie-xhtml.css" ?>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title xml:lang="en">test</title>
    </head>
    <body xml:lang="en">
    <p>Der Link: <a href="http://selfaktuell.teamone.de/index.htm">http://selfaktuell.teamone.de/index.htm</a> f&#252;hrt auf die Seite von Selfaktuell</p>

    </body>
    </html>
    ----------------------------------------

    -------------- css datei ---------------
    html { display:block; background-color:#FFCC00; width:100%; padding:0px; height:100%; margin:0px;}
    head { display:none; }

    body { background-color:#0A6BAF; margin-left:10px; margin-top:10px; display:block; width:100%; height:100%; }

    html, title, body, p { font-family:'Times New Roman'; }
    p { color:#FFCC00; }
    a:link { color:black; }
    a:visited { color:silver; }
    a:active { color:wheat; }
    a:hover { color:orange; }
    --------------------------------------

    wenn du deine dateien als xml speicherst, kann der IE nicht wissen, was  links oder <hr> bedeutet, denn alle elemente sind für ihn eben nichts anderes als irgendwelche xml elemente.

    grüße
    thomas

  3. Hallo,

    um beim InternetExplorer die Baumstruktur bei der Darstellung von XHTML zu unterdrücken, muss man bekanntlich ein CSS-Stylesheet oder ein XSLT-File angeben.

    Wenn die Baumstruktur dargestellt wird, hat der IE das File als XML erkannt, nicht als (X)HTML.

    Einfach die Extension .htm oder .html benutzen.

    Für andere Browser würde es ausreichen, wenn der Webserver den richtigen Mime-Type mitliefert (application/xhtml+xml oder text/html), aber der IE beachtet den Mime-Type allerhöchstens dann, wenn ihm eine unbekannte Extension begegnet (und selbst dann nicht immer).

    Im ersten Anlauf der Umstellung meiner Homepage auf XHTML habe ich einfach mal das CSS-Sheet genommen, mit dem ich auch die HTML-Version der Site formatiere. Das Ergebnis nach  ersten Prüfungen war, dass Links zwar schön farbig hervorgehoben waren, aber nicht anklickbar waren (der Mauszeiger verwandelte sich nicht in eine Hand), Grafiken wurden generell nicht angezeigt und <hr>-Trennlinien auch nicht.

    Wie gesagt, wenn ohne Stylesheet die Baumstruktur erscheint, erkennt er die Datei nicht als (X)HTML. Damit ist dann auch die Bedeutung der einzelnen HTML-Elemente verloren.

    Anscheinend ist es so, dass der IE auch solche Weisheiten wie "Text in <b></b>-Tags bitte mit font-weight:bold darstellen" in dem XHTML-CSS haben möchte. Aber wieso weiß er nicht, was in der XHTML-Datei die Links sind? Kann mir vielleicht jemand mal ein Beispiel-CSS mailen?

    Siehe oben.

    Wenn ich's nicht hinkriege mache ich eben eine Anti-Microsoft-Homepage ("optimiert für alles außer MSIE")

    Nochmal: Extension .htm oder .html und passenden Mime-Type (text/html oder application/xhtml+xml) benutzen.

    1. Hallo,

      ich habe nochmal experimentiert und ein interessantes Verhalten festgestellt:

      Meine eigenen XHTML-Dateien und auch die Code-Beispiele von Thomas werden vom IE6 unter Windows ME mit allen Bildern und dem Kram richtig dargestellt. Mit den gleichen Dateien baut der IE6 von Windows XP (das ist der Rechner, an dem ich noramlerweise mein Webdesign mache) richtig Müll: Nicht nur dass die beschriebenen Probleme auftauchen,er manipuliert unter gewissen Umständen auch noch an den DTD's (schreibt da verbotenerweise HTML4-Code rein, vor allem den Meta-Tag "Generator", MSHTML5.50.xxxx, was zwar eigentlich die falsche Version ist, aber die DTD's sind danach jedenfalls unbrauchbar). Ich denke mal, meine WinXP-Installation ist zerschossen... Oder kann das mal ein WinXP-Benutzer gegenprüfen, mit dem XHTML-Code-Beispiel in Thomas' Beitrag?

      Grüße
      Alwin Meschede