Cascading Style Sheets ::Artikel

position: fixed für IE/Win 6

Mit dem Wert fixed gibt CSS uns die Möglichkeit, einige interessante Dinge zu tun. So können wir z. B. Hintergründe am Ausgabemedium, d. h. meistens dem Browserfenster, ausrichten. Oder wir können ein Block- Level- Element durch position:fixed fest positionieren, sodass es beim Scrollen an der gleichen Stelle stehen bleibt. Damit lassen sich in standardstreuen Browsern einige hübsche Effekte erzielen.

Wer erinnert sich im Unterschied dazu nicht noch an die Zeiten der Version-4-Browser, in denen solche Dinge nur mit Hilfe von JavaScript möglich waren. Leider gibt es einen Browser, der diesen Zeiten auch heute noch nicht so ganz entwachsen scheint: IE/Win 6. Der Ausdruck 'in standardstreuen Browsern' bedeutet nämlich hier: 'nicht mit IE/Win 6'. IE/Win 6 kennt den Wert fixed nicht und ignoriert alle Deklarationen, die diesen Wert enthalten.

Genau genommen hängt alles davon ab, für welches Element der Wert fixed deklariert wurde, denn für den BODY funktioniert auch im IE/Win 6 alles tadellos. Solange man seine Hintergrundgrafik also nur an das Element BODY anbringt, scheint alles in Ordnung: siehe Beispiel 1.

Ebenso sollte es aussehen, wenn man sein Hintergrundbild an ein beliebiges Element P anbringt. Vergleichen Sie einmal die Darstellung des Beispiel 2 im IE/Win 6 und in standardstreuen Browsern. IE/Win 6 ignoriert die ihm unbekannte Deklaration nicht nur, sondern stellt sie sogar fehlerhaft dar.

Dasselbe Problem tritt bei der fixen Positionierung von Block- Level- Elementen auf. Dabei wird nicht nur ein Element falsch dargestellt, sondern es zerfällt unter Umständen das gesamte Layout der Seite.

Dennoch macht es keinen Sinn, allein aus diesem Grund ganz auf fixe Positionierungen zu verzichten. Designelemente wie etwa Navigationsmenüs werden in den allermeisten Fällen auf dem Bildschirm Platz finden, denn 90% aller Bildschirme sind heute bereits 1024×768 oder größer. Selbstverständlich sollte man bei großen Elementen nichts riskieren, denn alle Teile eines fixed positionierten Elementes, die außerhalb vom Bildschirm zu liegen kommen, sind für den Nutzer völlig unzugänglich.

Lösen lässt sich dieses Problem, wie sollte es anders sein, mit Hilfe von JavaScript. Das am besten dokumentierte Script, mit dem Hintergründe und Elemente fixed positioniert werden können, findet man bei Andrew Clover. Es sorgt dafür, dass IE/Win ab Version 5 die Deklarationen background- attachment: fixed und position: fixed korrekt interpretiert. Das Beispiel von oben funktioniert dann so: Beispiel 3.

Hinweis:
Leider kann ich dieses Script nicht mehr zum Download anbieten, nachdem eine große deutsche Online-Werbeagentur es hotverlinkt und mir damit einige Gigabyte an Trafficvolumen gestohlen hat. Wenn Sie das Script dennoch verwenden wollen, können Sie es dem Quelltext des Beispiels 3 entnehmen.

Andere Lösungsansätze für dieses Problem bauen auf reinem (oder besser: unreinem) CSS auf. Sie arbeiten mit Hilfe von browserspezifischen Bugs, mit proprietären Eigenschaften oder konditionellen Kommentaren. Einer dieser Hacks geht soweit, einige Bröckchen JavaScript in das Stylesheet zu integrieren. Alle diese Lösungen funktionieren mehr oder weniger problemlos, sie haben jedoch einige wesentliche Nachteile:

Deshalb wurde auf die detaillierte Beschreibung dieser Möglichkeiten auf dieser Seite verzichtet. Letztendlich ist dies aber nur meine persönliche Meinung. Sie sollte niemanden davon abhalten, wenn er bereit ist, die Nachteile in Kauf zu nehmen, sich über diese Lösungen zu informieren und sie anzuwenden.
TOP


Home|Vollreferenz|Schnellreferenz|Grundlegendes|Tutorials & Artikel|Quiz|Allgemeines

© Copyright All Contents 2002-2023
Commercial Use prohibited.


Notizen: