CSS の絶対位置指定で自動マージンが機能しないのはなぜですか?

Susan Sarandon
リリース: 2024-10-30 20:28:30
オリジナル
217 人が閲覧しました

Why Do Auto Margins Not Work with Absolute Positioning in CSS?

CSS の絶対位置と自動マージンの競合

CSS では、絶対位置プロパティによりドキュメントの通常のフローから要素が削除されます。これは、top、left、right、bottom のプロパティに基づいて配置されます。ただし、margin-left プロパティと margin-right プロパティが絶対位置で auto に設定されている場合、それらは何の効果もありません。

これは、margin-left: auto プロパティと margin-right: auto プロパティが原因です。要素をその要素を含むブロック内の中央に配置しようとします。絶対位置を持つ要素の場合、その要素を含むブロックがドキュメント本体になります。ただし、ドキュメントの本文自体には幅が設定されていないため、ブラウザは要素を中央に配置する場所を決定できません。

一方、position プロパティが相対に設定されている場合、要素は要素から削除されます。通常のフローですが、その仮想ボックスはドキュメント フロー内に残ります。この場合、margin-left と margin-right が auto に設定されている場合、マージンは包含ブロックの幅に基づいて計算されます。相対的に位置する要素の場合、それは依然として文書本体です。ただし、ドキュメント本文には幅が設定されているため、ブラウザは要素を中央に配置する場所を正確に決定できます。

絶対位置で要素を中央に配置するには:

代わりにmargin-left: auto と margin-right: auto を使用すると、left プロパティと right プロパティを 50% に設定できます。これにより、要素がドキュメント本文内の中央に配置されます。要素が画面外に移動しないようにするには、top プロパティとbottom プロパティを指定する必要もあります。

以上がCSS の絶対位置指定で自動マージンが機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!