ホームページ  >  記事  >  ウェブフロントエンド  >  マージン折りたたみは従来の CSS と Flexbox でどのように異なりますか?

マージン折りたたみは従来の CSS と Flexbox でどのように異なりますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-26 00:19:15368ブラウズ

How Does Margin Collapsing Differ Between Traditional CSS and Flexbox?

フレックスボックスでのマージンの折りたたみ

従来の CSS では、親要素とその最後の子の両方にマージンがある場合、マージンは 1 つのマージンに折りたたまれます。ただし、Flexbox を使用する場合、この折りたたみ動作は変更されます。

Flexbox では、要素は、display: flex プロパティを使用してフレックス コンテナ内で整列されます。これにより、フレックス フォーマット コンテキストが作成されます。これは、マージンの折りたたみという点でブロック フォーマット コンテキストとは異なります。

ブロック フォーマット コンテキストでは、マージンは次のように折りたたまれます。

article {
  margin-bottom: 20px;
}

main {
  margin-bottom: 20px;
}

footer {
  margin-top: 20px;
}

<!-- Outputs a 20px margin between the last article and footer -->

ただし、フレックス フォーマット コンテキスト、マージンは折りたたまれません:

#container {
  display: flex;
  flex-direction: column;
}

article {
  margin-bottom: 20px;
}

main {
  margin-bottom: 20px;
}

footer {
  margin-top: 20px;
}

<!-- Outputs a 40px margin between the last article and footer -->

この動作の違いは、Flexbox の別個のコンテキストによるものです。書式設定のルール。フレックス コンテキストでは、マージンはコンテナ内の各要素に個別に適用され、マージンが折りたたまれません。

以上がマージン折りたたみは従来の CSS と Flexbox でどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。