0

これはこの質問のほぼ複製ですが、そこにある答えのどれも、これの理論的根拠を実際に説明していないようです。これが私が本当に求めているものです。

絶対配置要素は、絶対位置、固定位置、または相対位置で何かにヒットするまで親子ツリーをチェックし、その要素に w/r/t を配置することを理解しています。

ここでの私の質問は次のとおりです。これを直感的にするために、相対的な位置付け(静的ではなく、たとえば)はどうですか?初心者としての(まったく無知な)私の観点からは非常に恣意的に感じるので、専門家がここで助けてくれることを切望しています. いくつかの要素を相対的に宣言する行為は、それを X にしますか? X は、子供が右上隅を継承する論理的なものですか? toprightbottomleft が設定されていない相対的に配置された要素は、本質的に静的な要素ですか、それともより深いレベルにある根本的に異なる動物ですか?

4

1 に答える 1

2

仕様を読むと、それは理にかなっています:

ボックスの位置 (場合によってはサイズ) は、'top'、'right'、'bottom'、および 'left' プロパティで指定されます。これらのプロパティは、ボックスの包含ブロックに対するオフセットを指定します。絶対配置ボックスは、通常の流れから除外されます。これは、後の兄弟のレイアウトに影響を与えないことを意味します。また、絶対配置のボックスにはマージンがありますが、他のマージンと一緒に折りたたまれることはありません。

適切なセクションに強調を追加しました。絶対配置された要素は、それらを含むブロックによってオフセットされます

包含ブロックは次を指定します。

CSS 2.1 では、多くのボックスの位置とサイズは、包含ブロックと呼ばれる長方形のボックスのエッジに対して計算されます。一般に、生成されたボックスは、子孫ボックスのブロックを含むものとして機能します。ボックスは、その子孫の包含ブロックを「確立する」と言います。「ボックスの包含ブロック」というフレーズは、「ボックスが存在する包含ブロック」を意味し、それが生成するものではありません。

相対位置は新しい包含ブロックを確立するため、その中に絶対的に配置されているものはすべて、包含ブロックの左上隅を基準にしています。

残念ながら、これは「なぜ」という推論には正確には入りません...そのためには、W3Cの会議メモを掘り下げて調べる必要があります(おそらく)。したがって、私たちがあなたに与えることができる最善の答えは、「仕様がそう言っている」ということです.

于 2012-12-14T17:12:55.807 に答える