Mirko Richter: Netscape und externe Style-Sheets

Hallo zusammen!

Das es mit Netscape und CSS ab und zu mal Probleme gibt ist ja bekannt (wurde auch des öfteren hier schon behandelt). Jetzt bin ich auf ein weiteres, wie ich finde, kurioses Problem zu diesem Thema gestossen, für das ich keine Erklärung habe.

zum Problem
------------
Ich erstelle ein Frameset, dass zumindest zwei Frames mit absolut positionierten DIVs UND externem Style-Sheet enthält. Rufe ich dieses Frameset im Netscape auf, stürzt der Browser ab. Das passiert nicht immer, aber es läßt sich auch nicht vermeiden, d.h. manchmal stürzt der Browser beim ersten Aufrufen eines solchen Framesets ab, manchmal "übersteht" er einige Reloads und stürzt erst ab, wenn die Seite mehrmals aufgerufen wurde.

zum Browser:
------------
Ich habe das Ganze mit mehreren Browsern getestet. Keine Probleme entstehen im IE4 und IE5.
Den Absturz habe ich mit mehreren 4er NS-Browsern beobachtet, wobei die mit der Versionsnummer >=4.5 etwas stabiler erscheinen, als die deren Versionsnummer <4.5 ist.

zu den Ursachen:
----------------
Der Absturz passiert nur wenn man ein Frameset aufruft bei dem folgende "Grundvoraussetzungen" gegeben sind.

  • das Frameset muß mindestens zwei Frames enthalten
  • in mindestens zwei Frame-Dateien muß je ein absolut positioniertes DIV enthalten sein
  • in mindestens zwei Frame-Dateien muß je ein externes Style-Sheet eingebunden sein

Es gibt keine Probleme, wenn man

  • die Datei aus den einzelnen Frames separat aufruft
  • an Stelle der absolut positionierten DIVs, relativ positionierte verwendet
  • gar keine DIVs verwendet
  • die css-Angaben innerhalb der Dateien vornimmt (über das Style-Attribut bzw. den Style-Bereich im Head)

ein Beispiel:
-------------
Ich habe ein ganz simples Frameset mit zwei Frames erstellt.
Die css-Datei hat ein paar Angaben mehr als nötig. Das habe ich für die Demo so gelöst, weil ich den Eindruck hatte, dass wenn man die css-Datei extrem vereinfacht, das Phänomen zwar auch auftritt, es aber länger dauert bis es auftaucht.

Das Beispiel: http://www.lighthouse.de/selfhtml/test991221/

Noch zwei Hinweise, wenn ihr das testet:

  • Das Frameset am besten durch Shift-Taste UND Reload-Button neu laden.
  • Da das Beispiel sehr vereinfacht ist, kann es länger dauern bis das Phänomen auftaucht. Ich habe den Eindruck, dass je komplizierter eine Seite aufgebaut ist (Anzahl der DIV's usw.) desto schneller kommt es zum Absturz.

Es hat recht lange gedauert, bis ich das Problem auf diese kurze :-) Beschreibung reduzieren konnte. Muss ich jetzt mit diesem Fehler leben und ihn umgehen (also keine absolut positionierten DIV's in Verbindung mit externen Style-Sheets mehr verwenden) oder hat jemand einen Hinweis wie ich das Problem lösen könnte?

Schonmal jedem vielen Dank, der sich meiner Frage annimmt.

Gruß
Mirko

  1. Hallo Mirko,


    Der Absturz passiert nur wenn man ein Frameset aufruft bei dem folgende "Grundvoraussetzungen" gegeben sind.

    • das Frameset muß mindestens zwei Frames enthalten
    • in mindestens zwei Frame-Dateien muß je ein absolut positioniertes DIV enthalten sein
    • in mindestens zwei Frame-Dateien muß je ein externes Style-Sheet eingebunden sein

    Auch ich hatte schon öfter meine Probleme mit externen Style-Sheets bei Netscape, auch wenn sich diese etwas anders äußerten. Die einzige Lösung die ich sehe (und was auch bei dir funktionieren dürfte) ist, dem Navigator "vorzugaukeln", es handle sich um ein Stylesheet innerhalb der HTML-Datei. D.h., du machst aus der CSS-Datei eine JS-Datei; aus deinen Style-Angaben machst du eine lange String-Variable, die dann im Dateikopf der HTML-Datei über document.write() ausgespuckt wird. Damit behältst du die Vorteile einer zentralen Style-Definition, während die Sache von Netscape trotzdem als nicht ausgelagertes Style-Sheet interpretiert wird.

    Deine Testseite schmiert bei mir übrigens nicht ab!

    Grüße,
    Claus

  2. Hallo Mirko!

    Ich konnte, so wie es unter deinem Link steht, das Problem nicht nachvollziehen.
    Das einzeige "verdächtige" was ich sehe, ist css mit Tabellen.
    Da ist der NS nur allzusehr empfindlich.

    Wenn es kein Problem ist, wäre die "echte" Seite mit allen Angaben interessant.

    Grüße
    Thomas

  3. Hallo Mirko,
    habe Deine Testseite unter NT4.0 SP5 / NS 4.7 getestet und keinen Absturtz porvozieren können (ca. 20x Shift+Reload) sorry ;-)

    JK