ホームページ  >  記事  >  ウェブフロントエンド  >  「マージン: 自動」で要素が垂直方向に中央揃えにならないのはなぜですか?

「マージン: 自動」で要素が垂直方向に中央揃えにならないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 19:57:31483ブラウズ

Why Doesn't

「margin: Auto」で要素を垂直方向に中央揃えにする

「margin: auto」は要素を水平方向に効果的に中央揃えにしますが、その垂直方向の配置機能は限定。これは、ブロック ボックスが垂直に積み重ねられる方法とマージンが崩れる可能性があるためです。

CSS2.1 セクション 10.6.2 によると、ブロック ボックスは通常の流れで上から下に積み重ねられます。特定の状況では、垂直方向のマージンが崩れてゼロになる場合があります。包含ブロックに自動高さがあり、ブロック ボックスが 1 つだけある場合、その上下のマージンは本質的にゼロです。

同じフロー内の複数のブロック ボックス、またはインフローに影響を与えるフロー外ボックスの場合レイアウトに応じて、自動マージンの解決がより複雑になります。これはインライン要素と浮動小数点数にも拡張され、ライン ボックスとの干渉を避けるために自動の左右のマージンがゼロに設定されます。

対照的に、絶対配置されたボックスは、同じ配置コンテキスト内の他のボックスを認識しません。したがって、自動上下マージンは、それらを含むブロックのみに基づいて計算できます。

Flexbox は、フレックス フォーマット コンテキスト内で相互に完全に認識しているフレックス アイテムに対する独自のソリューションを提供します。フレックスボックスの垂直マージンは明確なルールに従い、要素の配置をより正確に制御できます。

以上が「マージン: 自動」で要素が垂直方向に中央揃えにならないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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