Robert Bamler: XHTML-Deklaration in valider Seite bewirkt Fehler in Netscape

Hallo Forumer,

ich habe gerade ein seltsames Problem und hoffe, ihr könnt mir helfen:

Eine Seite wird in Netscape 7.0 Preview Release 1 (wahrscheinlich auch in Version 6.0 - habe ich gerade nicht zum Testen zur Hand) fehlerhaft angezeigt, wenn sie eine XHTML-Deklaration enthält, erscheint aber richtig, wenn man diese Deklaration entfernt. Die Seite ist XHTML-valide laut dem W3C-Validator.

Ich habe das mal veranschaulicht unter http://www.bamler.de/robert/navtest/mitxhtml.htm.

Die Seite enthält ein Bild, dass in einer Tabellenzelle mit rotem Hintergrund anzeigen werden soll. Die Seite ist als XHTML 1.0 Transitional deklariert und ist valide. Da das Bild keine transparenten oder roten Stellen enthält, dürfte von der Hintergrundfarbe der Tabellenzelle jetzt eigentlich nichts zu sehen sein, weil die Tabellenzelle komplett vom Bild "abgedeckt" wird.

In IE und Opera funktioniert das auch wunderbar, sogar Netscape 4.51 schafft das. In Netscape 7.0 Preview Release 1 erscheint die Tabellenzelle aber etwa 3px zu groß, wodurch unten am Bild ein kleiner roter Streifen entsteht.

Jetzt das Sonderbare: Lässt man die XHTML-Deklaration weg (d.h. das ?xml, das !DOCTYPE und das xmlns-Attribut), dann zeigt Netscape die Seite korrekt an.

Weis jemand, woran das liegen könnte oder wie man es "umgehen" kann. Es würde mich ärgern, wenn ich nur wegen einem Bug in Netscape meine Seiten nicht XHTML-valide schreiben kann.

viele Grüße,
Robert

  1. Hi!

    Schau mal bei http://developer.netscape.com/evangelism/docs/articles/img-table/ vorbei.
    Dort wird erklärt das die Darstellungsweise anderer Browser nicht korrekt ist, da img als Inlineelement auf der Baseline zustehen hat und nicht drunter!
    Ist der Mozilla im Strictmode zeigt er es so an wie's sein soll, ist er im Quirksmode zeigt er es wie alle anderen an. Du kannst das verhalten mit entsprechenden CSS-Angaben abstellen (vertical-align, display

    Gruß Herbalizer

    1. Hallo Herbalizer,

      danke für die schnelle Antwort! Jetzt läuft es. "display:block" hat gereicht (hätte nie gedacht, dass das so einfach ist).

      Dort wird erklärt das die Darstellungsweise anderer Browser nicht korrekt ist, da img als Inlineelement auf der Baseline zustehen hat und nicht drunter!

      Stimmt eigentlich. Da hab' ich Netscape Unrecht getan ;-)

      vielen Dank nochmal,
      Robert