Christian S.: absolute Position eines DIV-Containers ermitteln

Beitrag lesen

Hi,

benutze für IE:

var rect = element.getBoundingClientRect();

rect.top;
rect.left;

wobei es die offsetParent Schleife natürlich auch tun sollte.

Allerdings ist diese Methode in allen Browsern ungenau, wenn man elemente mit margins und bordern hat.

Dazu kommt immer noch der scrollOffset einiger Elemente.

Opera hat den z.B. _manchmal_ schon in offsetTop drin, und für TR und inline elemente hat er einen ganz falschen Wert.

Mozilla berechnet den Border nicht mit, außer für TD/TH/TABLE. Und wenn man Elemente hat, deren overflow Eigenschaft != "visible" sind und kein offsetParent darstellen, wird deren border auch nicht mitberechnet. Ganz komisch alles.

Und wenn man border beim Body hat hängt es wiederum davon ab, ob das letzte "offsetChild" absolute war oder nicht. Aber auch nur im Mozilla.

Auch lustig ist, wenn man ein Table mit position:relative und z.B. margin:100px hat. Dann wird der margin auch nicht mitberechnet.

gruß!