Fixed Layer im Internet Explorer

Fixed Layer sind was schönes: Man plaziert sie mit CSS so, dass die immer an einer Stelle X auf dem Bildschirm bleiben, egal wie wohin und warum man scrollt. Jeder Browser macht das so – mit einer Ausnahme: Der Internet Explorer.
Nun, wer mit HTML schonmal zu tun hatte, wird oft genug über die Unzulänglichkeiten früherer Internet Explorer Versionen gestolpert sein und diese gehört dazu.

Nun, wie bekommt man einen Fixed-Layer im Internet Explorer hin?

Es gibt hier einen „Trick“: Man baut in der CSS-Formatierung Befehle ein, die nur vom Internet Explorer interpretiert werden. Hat man z.B. einen Layer, der immer brav oben am Bildschirmrand angezeigt werden soll, gibt es folgenden „Workaround“:

div {
position:fixed;
_position:absolute;
top:0;
_top:expression(eval(document.body.scrollTop));
}

D.h. alle „normalen“ Browser interpretieren den Code so, dass der Layer oben bündig positioniert wird, der IE „errechnet“ sich seine Position. Möchte man einen Layer unten bündig anzeigen, geht das ebenso einfach:

div {
position:fixed;
_position:absolute;
bottom:0;
_top:expression(document.body.scrollTop+document.body.clientHeight-this.clientHeight);
}

Vielen Dank an die Seite http://annevankesteren.nl/test/examples/ie/position-fixed.html die mir bei der Problemlösung geholfen hat!

Das könnte Dich auch interessieren...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.