ChrisB: Horizontale position:fixed für IE6

Beitrag lesen

Hi,

Hast du das *Prinzip* verstanden, mit dem fixe Positionierung fuer den IE < 7 simuliert wird?

Nein, das hab ich wohl nicht ganz verstanden, drum frag ich ja hier nach :-)

Gut, dann eine kurze Erklaerung:

position:fixed funktioniert bei korrekter Umsetzung durch den Browser bekanntermaszen so, dass man einfach einigen Elementen sagt, "beweg' dich beim scrollen des restlichen Seiteninhalts nicht mit, und bleib an deinem Platz".

Versteht der IE < 7 aber nicht, deshalb greift man zu folgendem Workaround:
Man laesst nicht den eigentlichen Inhalt des body-Elements scrollen, sondern unterbindet dies explizit du overflow:hidden.
Dann nimmt man sich einen Div-Container, den man 100% der Viewporthoehe einnehmen laesst, und erlaubt fuer diesen per overflow:auto Scrollbalken, wenn sein Inhalt hoeher bzw. breiter sein sollte. Alles, was ganz normal scrollen soll, packt man in diesen Container.
Alles, was fixed sein soll, wird ausserhalb dieses Containers notiert, und absolute positioniert. Da nur der Containerinhalt gescrollt wird, bleibt es damit ebenso "stehen", als ob es in einem Browser, der es kann, fixed positioniert waere.
Das ganze versteckt man dann per Conditional Comments oder CSS-Hacks vor den Browsern, die position:fixed richtig umsetzen - und fertig ist das Gartenhaeuschen ...

(Kleiner Nachteil des Workarounds: Bei Positionierung von rechts aus muss die Scrollbalkenbreite mit einkalkuliert werden, da die Element sonst ueber diesem - der jetzt ja nicht mehr zum body, sondern zum Scrollcontainer "gehoert" - platziert werden. Und Breitenangaben a la 100% fuer dermaszen fixierte Elemente sind eben deswegen gleichfalls problematisch.)

MfG ChrisB