1. Why does the body have CSS 'position:relative' set? Is it intended to fix some bug? I heard that there was some IE bug where we were not able to set absolute positioning of elements.
FC: これはバグを修正するためのものではありませんが、おそらく body 要素の (直接の) 子の 1 つにposition:absolute
. body に が含まれていないposition:relative
場合、その子は body 要素ではなく、キャンバス (ブラウザの内部ウィンドウ) に対して相対的に配置されます。完全なストーリーについては、このチュートリアル('Nested position:absolute') を参照してください。昔はそういう意味で IE のバグがあったのかもしれませんが、IE8 の時点では IE はこれに関しては正常に動作しています。
.
2. Why does 'margin-top' of 'only' the first element inside the body affect the position of every element?
FC: それは設計によるものです。垂直マージンは、後続の兄弟要素の位置に影響しますが、aは影響position:relative; top:20px
しません。繰り返しますが、完全なストーリーについては、前述のチュートリアルを参照してください。
.
3. Javascript function 'getBoundingClientRect()' returns wrong value for any element as it does not consider this margin-top value set on topmost element.
FC: それも意図的なものですが、あなたが正しく解釈しているかどうかはわかりません。それを示すためにいくつかのコードを投稿できますか? 私が知っていることは、その方法には注意する必要があるということです。代替案を含む完全なストーリーについては、このどっとろページを参照してください。