nlog

とめどなく流れるよだれ

marginの相殺を検証する

マージンの相殺 | MDN」を読んでる。

隣接兄弟要素の margin の相殺。よく知るやつ。あと要素の margin-top: 1em が前の要素の margin-bottom: .5em を相殺している。ばっちり相殺。

親要素と先頭・末尾の子要素の margin の相殺。これもmarginの相殺と呼ぶのか。親要素の margin を子要素の margin が相殺している。よし相殺。

空のブロックの margin の相殺。使うことはなさそうだけど、相殺されているのは確認できた。

おまけの追記

負のマージンが絡む場合には、相殺されたマージンの大きさは、一番大きな正のマージンと一番小さな(もっともマイナスの)マージンの合計値になります。

確認。親要素と先頭・末尾の子要素の margin の相殺で、親要素の正の margin と同じ値を子要素に負の margin を指定したとき、結果として親要素の下の margin が残るっていうのは気づきにくい感じがした。ただ、負の margin を基本的に使わないので遭遇する機会はあまりなさそう。

ブロックが、その margin-top とその先頭の子要素の margin-top を分けられるような、ボーダー、パディング、インラインコンテンツ、フロートの解除 (clear) のいずれも持たない場合、もしくは、ブロックがその margin-bottom とその末尾の子要素の margin-bottom を分けられるような、ボーダー、パディング、インラインコンテンツ、高さ (height)、高さの最小値 (min-height) のいずれも持たない場合、マージンは相殺されます。

確認。borderpadding のようなケースでは気づかぬうちに、ということが起こりそうなんので気をつける。