最初の例では、<h1>
をブロック要素として使用すると、上部マージンが折りたたまれています(私の強調)。
CSSでは、2つ以上のボックス(兄弟である場合とそうでない場合があります)の隣接する余白を組み合わせて、単一の余白を形成できます。このように結合されたマージンは崩壊すると言われ、結果として生じる結合されたマージンは崩壊されたマージンと呼ばれます。
...以降:
次の場合に限り、2つのマージンが隣接しています。
- どちらも、同じブロックフォーマットコンテキストに参加するインフローブロックレベルボックスに属しています
- ラインボックス、クリアランス、パディング、境界線はありません(特定のゼロハイトラインボックス(9.4.2を参照)は、この目的では無視されることに注意してください)。
- 両方とも垂直に隣接するボックスエッジに属します。つまり、次のペアのいずれかを形成します。
- ボックスの上部マージンと最初の流入子の上部マージン
- ボックスの下マージンと兄弟に続く次の流入の上部マージン
- 最後の流入子の下部マージンと、親が「自動」で計算された高さを持っている場合はその親の下部マージン
- 新しいブロックフォーマットコンテキストを確立せず、計算された「min-height」がゼロ、「auto」が計算された「height」がゼロで、流入する子がないボックスの上下の余白
2番目の例では、<h1>
をインライン要素として使用すると、垂直方向の余白は有効になりません。
'margin'省略形プロパティは、4つの辺すべてのマージンを設定しますが、他のマージンプロパティはそれぞれの辺のみを設定します。これらのプロパティはすべての要素に適用されますが、垂直方向の余白は、置換されていないインライン要素には影響しません。