[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 してみた。
https://suika.suikawiki.org/~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