通常、CSSでは、親とその最後の子にマージンがあると、マージンが崩壊して1つのマージンが作成されます。例えば。フレックスボックスのマージンの崩壊
article {
margin-bottom: 20px
}
main {
background: pink;
margin-bottom: 20px;
}
footer {
background: skyblue;
}
<div id="container">
<main>
<article>
Item 1
</article>
<article>
Item 2
</article>
</main>
<footer>Footer</footer>
</div>
あなたが見ることができるように、20ピクセルのマージンがarticle
とmain
タグの両方に指定されているにもかかわらず、あなただけの最後の記事とフッターの間に20ピクセルのマージンを取得します。
フレックスボックスを使用している場合、最後の記事とフッターの間に40pxのマージンがあります。記事からメインまで20px、メインからフッタまで20pxです。
#container {
display: flex;
flex-direction: column;
}
article {
margin-bottom: 20px
}
main {
background: pink;
margin-bottom: 20px;
}
footer {
background: skyblue;
}
<div id="container">
<main>
<article>
Item 1
</article>
<article>
Item 2
</article>
</main>
<footer>Footer</footer>
</div>
フレキシボックスのマージンが非フレキシボックスのものと同じように振る舞うようにする方法はありますか?
nnnnnoooooooooooooooこれは教えてください!モジュール間の余分なスペースを取り除くにはどうすればよいですか? –
@TomRoggeroおそらくそのコンテンツのラッパーをブロック書式設定のコンテキストで動作させるために追加しますか?ラッパーは、フレックスフォーマットのコンテキストに存在しますが、そのコンテンツは存在しません - 私は推測します。しかし、ラッピングは良い、良い、セマンティックなマークアップを破る傾向があります。 –