マージンの閉じ込め: 謎が明らかに
マージンのある要素が別の要素内にネストされている場合、親のカプセル化能力に矛盾が生じます。余白。 border、position:Absolute、display:inline-block、overflow:auto などのさまざまな CSS プロパティは、親に子のマージンを含めるようにトリガーします。ただし、この動作の背後にあるロジックは依然としてとらえどころがありません。
当初、この仮定はマージンの崩壊を中心に考えられていました。ただし、W3C 仕様ではこの動作について明確な説明が提供されておらず、このシナリオでは重複するマージンはありません。それにもかかわらず、ブラウザは一貫して同じ動作を示します。
この問題の核心は、通常の div のデフォルト動作がマージンが親に含まれていないことを前提としているという事実にあります。ただし、この動作を変更する他のすべての CSS プロパティは、マージンを含める必要があることを意味します。この矛盾にはさらなる調査が必要です。
W3C 仕様: 真実と謎の混合
W3C 仕様は、さらに精査した結果、この動作に対処していますが、一貫性のない説明を提供しています。 。この仕様では、「フリー マージン」(親の境界を越えて広がるマージン) と「崩壊マージン」(重なり合う隣接するマージン) の概念が無計画に組み合わされています。
この融合により、開発者には答えよりも多くの疑問が残ります。この場合、空きマージンは overflow: auto プロパティの影響を受けているように見えますが、オーバーフローは通常、マージンではなく要素のコンテンツを制御することを考えると、直感に反します。
ライブ デモンストレーション
提供されたコード スニペットに見られるように、ライブ デモンストレーションは、この奇妙な動作を鮮明に示しています。マージン (h2) のある要素は、異なる CSS プロパティを持つさまざまな親要素内にネストされます。この結果は、マージンを封じ込める親の能力が、一見無関係なトリガーによってどのように影響を受けるかを明確に示しています。
この謎は依然として残り、開発者は CSS マージン封じ込めの背後にあるロジックを解読しようとして頭を悩ませています。この現在進行中の謎を解決するには、さらなる調査と W3C からの説明が必要になる可能性があります。
以上がCSS のマージン制限がオーバーフロー:自動によって制御されているように見えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。