1)を使用し、コンテナが正しく子div
に合うように拡大しています。子供の身長は100pxに1pxの境界の2倍、合計102pxです。それで、ブラウザの高さは正確に102ピクセルです。ブラウザの開発ツールがあなたに伝えることができます。
内容の高さは102pxなので、容器の内側の高さは102pxです。これは定義上「内容に合わせて拡大する」ことです。
2)ここで、あなたの子divにposition: relative
を設定しています。 Mozilla Developer Networkからの次の引用は、あなたの例で起こっていることを完全に説明するべきです。
相対位置:
このキーワードは、要素が 配置されていなかったかのようにすべての要素をレイアウトし、次に レイアウトを変更する(したがってそれ要素の隙間を残すことなく、要素の位置を調整します は置かれていませんでした)。 table - * - group、table-row、table-column、table-cell、table-captionの 要素のposition:relativeの効果は未定義です。明らかに
3) 、あなたは相対的な位置決めを退治する、とだけではなく、margin
を使用することで、この効果を取り除くことができます。あなたのコメントに関しては、いいえ、top
、right
、bottom
、およびleft
は絶対に動作しません。それらは、上の引用が何を説明するのかについて、まったく異なるもののために使用されることを意図しています。
なぜ、マージンが機能するのか(なぜなら、それは要素自体の一部であると考えられるため)、TOP属性は機能しないはずです。 代わりにLEFT、TOP、RIGHT、BOTTOMの位置を使用する場合はどうなりますか? – Kadjia
@ Kadjiaあなたは 'top'を使って要素を移動しますが、' margin-top'を使うと要素を押しています。 –