On Wed, 23 Apr 2008 10:52:54 +0200, Daniel Glazman <daniel.glazman@disruptive-innovations.com> wrote: > Anne van Kesteren wrote: > >> document.body.getBoundingClientRect().top - >> document.documentElement.getBoundingClientRect().top >> or >> document.body.offsetTop - document.documentElement.offsetTop > > Excerpt from your own spec : "If A is the HTML body element or does not > have an associated CSS layout box return zero and stop this algorithm". I'm sorry. I'm still a bit sleepy I guess. > So document.body.offsetTop is always zero and your last proposal above > does not work. > > If only the first one is available, that means that for all elements > but document.body, we use A.offsetTop and for document.body, we use > A.getBoundingClientRect().top ??? That's really inconsistent and > painful. Actually, you would probably always use getBoundingClientRect() as that's far more consistent and reliable than any of the offset* attributes. They are mainly defined because lots of legacy scripts use them currently to calculate the position of an element using while loops (which the specification handles fine). -- Anne van Kesteren <http://annevankesteren.nl/> <http://www.opera.com/>Received on Wednesday, 23 April 2008 09:03:24 GMT
This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:55:05 GMT