ホームページ  >  記事  >  ウェブフロントエンド  >  標準の CSS レイアウトと比較して、Flexbox ではマージンの動作がどのように異なりますか?

標準の CSS レイアウトと比較して、Flexbox ではマージンの動作がどのように異なりますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-26 02:20:15720ブラウズ

How Do Margins Behave Differently in Flexbox Compared to Standard CSS Layout?

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

CSS では、通常、隣接する要素のマージンが折りたたまれて 1 つのマージンが作成されます。ただし、フレックスボックス コンテナでは、この動作は異なります。

問題: 非フレックスボックスとフレックスボックスのマージン

非フレックスボックス レイアウトを使用する場合、親要素のマージンそして最後の子は折りたたまれます:

article {
  margin-bottom: 20px;
}

main {
  margin-bottom: 20px;
}

ただし、フレックスボックス内ではコンテナ:

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

article {
  margin-bottom: 20px;
}

main {
  margin-bottom: 20px;
}

余白が崩れなくなり、最後の記事とフッターの間の隙間が大きくなります。

違いを理解する

マージンの崩壊は、ブロックの書式設定コンテキストで発生します。ただし、フレックスボックス コンテナは、フレックス フォーマット コンテキストと呼ばれる別のタイプのコンテキストを作成します。

CSS ボックス モデル仕様によると、

「フレックス コンテナは、そのコンテンツに対して新しいフレックス フォーマット コンテキストを確立します。これは、ブロック レイアウトの代わりにフレックス レイアウトが使用される点を除いて、ブロック フォーマット コンテキストの確立と同じです。"

フレックス内コンテキストをフォーマットすると、コンテンツが通常のブロック レイアウトとは異なる方法で処理されるため、マージンが崩れることはありません。フロートはフレックスコンテナに侵入せず、コンテナのマージンは子要素のマージンから分離されたままになります。

以上が標準の CSS レイアウトと比較して、Flexbox ではマージンの動作がどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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