一般的なルールは、divfoo
に があるときはいつでもposition: relative
、親と祖先のいずれにも非静的がないposition
場合 (したがって のいずれかが必要relative, absolute, or fixed
)、divfoo
はドキュメント全体に対して相対的な位置になると考えました。
しかし、次のページでは:
<div id="box1"></div>
<div id="box2">
<div id="box3">some text inside some text</div>
</div>
<style>
#box1 { width: 300px; height: 100px; background: #ffd; margin-left: 60px }
#box2 { width: 300px; height: 100px; background: #fa0; margin-left: 60px }
#box3 { width: 100px; height: 80px; background: #af0; position:
absolute; left: 20px; }
</style>
box3
実際には次のように動作します: left
is20px
および is はドキュメントに対して相対的ですが、top
(auto
デフォルトでは) であり、実際にはコンテナー divに対して相対的です。が、、またはその他の値にtop
設定されている場合のみ、ドキュメントに対して相対的になります。これを支配しているルールは何ですか?0
0px
PS仕様のルールでは、次のようなルールはありません。 top
orleft
が指定されていない場合、動作はそのようなものです。したがって、これが指定されていない場合、「包含ブロック(非静的配置ブロックとして定義されている)」がない場合、「初期ブロック」に対して相対的ではないというデファクトスタンダードですか?