Masin Al-Dujaili: Opera & Netscape

Hallo allerseits!

Ich habe erst jetzt leider wieder Zeit gefunden, meine Anfrage
zu stellen, die durch div. Serverprobleme den Weg aller Digitalen
Daten gegangen ist.

Und zwar würde ich gerne wissen, wie ich es machen kann, bei Besuchern meiner Seite gleich den richtigen Browser zu starten, mit dem die Seite dann völlig korrekt angezeigt wird. Und wenn der Browser nicht installiert ist, dann soll er gleich in der aktuellen Version installiert werden. Das läßt sich doch bestimmt über ActiveX machen, oder? Bei der Gelegenheit könnte man gleich auch ein Betriebssystem installieren, das diesen Namen auch verdient, dieses dann booten und dort mit einem brauchbaren Browser gleich meine Seite ansteuern. Notfalls soll vor der Installation noch - vollautomatisch - ein Hardwareupgrade durchgeführt werden. ;)

Aber jetzt mal ernsthaft: Meine Frage bzgl. der Unterschiede
in der Interpretation der CSS-Eigenschaft
"background-attachment:(scroll|fixed);" ging ja leider unter,
und ich hatte keine Gelegenheit, mir die Antworten durchzulesen.
Das Problem war ja ein fixes <div> mit fixem Hintergrund, das
entweder bei Opera und Gecko feststeht - bei Gecko wird der
Hintergrund dann absolut positioniert und nicht relativ zum
Rand des <div>s, was eine vernünftige Positionierung fast
unmöglich macht - oder bei Opera scrollt der Hintergrund mit, aber
Gecko zeigt's auf einmal richtig an.

Ich wollte gerne wissen, welcher von beiden denn nun recht hat
in seiner Interpretation, momentan erscheint mir die Opera-Lösung
sinnvoller. Sollte das bei Gecko ein Fehler sein, könnte man das
ja auch mal denen schreiben, solange es noch keinen Mozilla 1.0
gibt.

Hier die Links zum Anschauen:
http://www.thoughtforge.de/operavsgecko/opera_fixed_div.html
http://www.thoughtforge.de/operavsgecko/gecko_fixed_div.html

Grüße

Masin

  1. Jetzt warte ich schon vier Minuten immer noch keine Antwort!!!!!!
     ;)

    Sorry, den konnte ich mir nicht verkneifen. Was ich vergessen
    hatte, war zu erwähnen, daß beide verlinkte Dateien seitens
    W3C-Validator sowohl XHTML- als auch CSS2-validiert wurden, an
    unsauberem Code kann's dann ja wohl auch nicht liegen.

    Noch mehr Grüße

    Masin

    1. Hallo !

      Zunächst ein Kompliment: Man liest (leider) selten so gut forumlierte und dokumentierte Fragestellungen wie deine. :-)

      Mal schauen ob ich mit meiner Antwort mithalten kann.

      Ich habe mir die Sache jetzt in allen möglichen Varianten in den beiden Browsern Opera 6 und Mozilla 0.9.7 (WIN98SE) angesehen und komme zum selben Ergebnis wie du:

      Um die Hintergrundgrafik des Layers zu fixieren, benötigt man für Opera die CSS-Eigenschaft background-attachment:fixed;.

      Dieselbe Angabe führt jedoch bei Mozilla dazu, dass dann die Position der Hintergrundgrafik sich nicht mehr auf den Layerausschnitt bezieht, sondern auf das gesamte Browserfenster, wodurch es u.U. gar nicht mehr zu sehen ist.

      Welche Verhaltensweise richtig ist, kann ich leider auch nicht sagen.
      In der W3C-Spezifikation liest man:
      ----------------------------------------------------------------------
      "If a background image is specified, this property specifies whether
      it is fixed with regard to the viewport ('fixed') or scrolls along
      with the document ('scroll').

      Even if the image is fixed, it is still only visible when it is in the
      background or padding area of the element. Thus, unless the image is
      tiled ('background-repeat: repeat'), it may be invisible."
      ----------------------------------------------------------------------
      (siehe:http://web3.w3.org/TR/CSS2/colors.html#propdef-background-attachment)

      So richtig schlau werde ich daraus nicht. Der zweite Absatz läßt mich aber vermuten, dass Mozillas Verhalten richtig ist, wobei mir persönlich Operas Auslegung sinnvoller erscheint. Zudem erschließt sich mir ansonsten nicht, warum bei background-attachment: scroll; die Positionierung der Grafik wieder innerhalb des Layers erfolgt und, im Mozilla, entgegen dem Wortsinn die Grafik nicht "scrollt".

      Du hast zwar nicht nach einer Lösung des Problems gefragt ;-), aber eine Möglichkeit hätte ich anzubieten, die auf JavaScript/DOM beruht:

      In der CSS-Definition legt man sich zunächst für eine der beiden Varianten fest:

      background-attachment:fixed; /* für Opera */

      Beim Laden des Dokumentes ruft man nun eine Funktion auf, die für den jeweils anderen (der beiden) Browser die Angabe auf den gegenteiligen Wert setzt:

      z.B.:
          <script type="text/javascript">
              function fixmozilla() {
                  if (document.getElementById && !window.opera) {
                      document.getElementById("menu").style.backgroundAttachment="scroll";
                  }
         }
          </script>

      <body onload="fixmozilla();">
          <div id="menu" ...

      Theoretisch sollte es auch andersherum gehen (Original-CSS für Mozilla, JavaScript-Korrektur für Opera). Dies ist bei meinen Versuchen allerdings gescheitert. Ich vermute eine DHTML-Schwäche von Opera dahinter.

      Ich hoffe, ich konnte helfen.

      Gruß,

      kerki

      P.S. Ein reiner IE-User wird sich fragen, wovon wir überhaupt reden. *g*

      1. Hallo kerki,

        Ich hoffe, ich konnte helfen.

        das mit Sicherheit. In der CSS-Referenz nachzuschlagen, habe ich ganz
        vergessen, so daß das doch irgendwie ein wenig Licht in die Sache
        brachte. Trotzdem finde ich den Absatz

        "If a background image is specified, this property specifies whether
        it is fixed with regard to the viewport ('fixed') or scrolls along
        with the document ('scroll')."

        irgendwie bedenklich, da die Attribute zum Positionieren einer
        Hintergrundgrafik nicht "mächtig" genug sind, um alle Möglichkeiten
        wahrzunehmen.

        Zusammenfassend kann man also nur ernüchternd sagen, daß Gecko
        "background-position:fixed;" und Opera "background-position:scroll;"
        korrekt anzeigt, aber eben das jeweils andere nicht. Naja,
        wenigstens gibt es überhaupt Möglichkeiten, etwas anzuzeigen - so
        als Fortsetzung Deines post scriptums ;).

        P.S. Ein reiner IE-User wird sich fragen, wovon wir überhaupt reden. *g*

        Wer benutzt denn Programme, die bei Windows mitgeliefert werden?
        Jaja, leider viel zu viele ...

        Grüße

        Masin