Firefox vs. “background-position: center center;”

Während meiner Nachforschungen zum folgenden Problem habe ich auf einer Seite den Satz gelesen “Vielleicht das einzig Gute am Internet Explorer!”. Dem kann ich mich anschliessen 🙂 Also. Ich habe ein Hintergrundbild in einem HTML-Element, zB dem body dieser Seite. Mit CSS setze ich dieses in die Mitte:

Nun habe ich einen sehr langen Text auf meiner Seite (zB dieses Blog), ein vertikaler Scrollbalken wird angezeigt. Und ich habe einen sehr kurzen Text (der Photobereich zur Zeit noch), bei dem keine Scrolleiste angezeigt wird. Beim Wechseln zwischen diesen beiden Bereichen springt das Hintergrundbild. Warum? Weil Firefox die Breite der Scrolleiste von der Breite der eigentlichen Seite abzieht, bevor er die Position des Hintergrundes auf der – nun schmaleren – Seite berechnet. Sehr nervig. Folgende Lösungen stehen zur Wahl:

Den ersten Ansatz liest man sehr häufig: Man mache die komplette Seite immer mindestens 1 Pixel höher als sie müsste:

Die Folge: Man hat immer einen aktiven Scrollbalken rechts, der um mindestens einen Pixel scrollt. Auch nicht besser. Als nächstes bin ich über die Möglichkeit gestolpert, die Breite der Scrolleiste per Javascript auszulesen (ich leihe mir den Code mal, aus Archivierungsgründen :-)):

Da tun sich doch unvermutete Möglichkeiten auf!? Tja, bloß leider keine, die funktioniert hätte. Wenn jemand eine Idee hat, wie ich die Position eines Elementes, das prozentual (bzw. über “center”) positioniert ist, um eine Anzahl von Pixeln ändern kann: Immer her damit 🙂 Mir blieb nur folgende Lösung, bei der ebenfalls ein permanenter Scrollbalken eingeblendet wird – allerdings ist dieser inaktiv, wenn er nicht benötigt wird, was ich persönlich sehr viel angenehmer finde:

Diese Lösung ist die valide (!) CSS3-Version des invaliden

, das sowieso nur für Mozilla-Browser gilt. Erstaunlicherweise funktioniert die CSS3-“:root”-Version praktisch “überall”: Firefox 2.0.0.16 auf dem Mac, Safari 3.1.2 auf dem Mac, Firefox 3.0.1 auf dem PC, Safari 3.1 auf dem PC, dem IE soweiso, und dem W3C CSS Validator!

Leave a Reply

Your email address will not be published. Required fields are marked *

Ich erkläre mich damit einverstanden, dass alle eingegebenen Daten und meine IP-Adresse zum Zweck der Spamvermeidung durch das Programm Akismet in den USA überprüft und gespeichert werden. Weitere Informationen zu Akismet und Widerrufsmöglichkeiten.