[1]
offsetTop/offsetLeft/offsetParentの闇 - Backstage of theater.js (2008-11-02 01:56:08 +09:00
版) <http://d.hatena.ne.jp/susie-t/20061004/1159942798>
(名無しさん)
[2] offsetLeft,offsetTop,offsetWidthそしてoffsetHeight──静的配置要素の絶対位置を確実に取得する方法について <http://hkom.blog1.fc2.com/blog-entry-503.html> (名無しさん 2008-11-02 03:35:50 +00:00)
[3] Reverse engineering offsetLeft, offsetTop and offsetParent - Anne’s Weblog ( 版) <http://annevankesteren.nl/2006/05/offset>
[4] Offset attributes again - Anne’s Weblog ( 版) <http://annevankesteren.nl/2006/06/offset-attributes>
body
だとどうなるか[13] html
, body
共に overflow: scroll
の時
(overflow
の項を参照。)
Firefox3 | Opera 9.52 | |||
無奇癖 | 奇癖 | 無奇癖 | 奇癖 | |
documentElement.offset* | border箱 (padding辺) | border箱 (margin辺) | border箱 | |
body.offset* | border箱 (padding辺) | border箱 | viewport 内容箱 + スクロールバー | |
documentElement.client* | viewport | padding箱 (border辺) | viewport | 縦: padding箱 (border辺); 横: viewport |
body.client* | ☆padding箱 可視部 (border辺) | padding箱 可視部 (border辺) | viewport | |
documentElement.scroll* (Width/Height) | 画布可視域 | border箱 | ☆※ | border箱 |
body.scroll* (Width/Height) | ☆padding箱 内容 | 画布可視域 | ||
documentElement.scroll* (Top/Left) | ○ | ○ | ||
body.scroll* (Top/Left) | ☆ | ○ |
[12] 凡例:
scrollTop
/scrollLeft
は、 viewport
のスクロールバーの状態を反映するか否か。absolute
は含むが、
fixed
は含まない。) の border箱をすべて包含する箱。body
の border-top-width
、
border-left-width
を加算。[10] 注意:
html
と body
の箱を viewport にあわせて伸張する (次元を明示していない場合)。body
の border
が viewport の border
になる。body
の margin
+ border
+ padding
の領域は padding
のように扱われるので、これを拡張 padding箱と呼ぶ
(border
に相当する部分は描画されない; margin
に相当する部分にも背景色が塗られる)。
html
の padding
より外側は無視される。body
外の要素だとどうなるか?[5] html
要素に appendChild
してみた。
<http://suika.fam.cx/~wakaba/-temp/test/dom/element/cssom/offset/>
の offset-*-html-child-*。
奇癖モードの場合や html
に
background-color
を指定した場合でも変わらず。
[9] ちなみに getBoundingClientRect
なら Firefox3、
Opera9 共正しい値が取れます。
[8] getClientRects
, getBoundingClientRect
というのもあります。
[14] [cssom-view] Web compatibility of float return values for offsetWidth/Height ( (Boris Zbarsky 著, 版)) <http://lists.w3.org/Archives/Public/www-style/2014Jul/0035.html>