ホームページ > ウェブフロントエンド > CSSチュートリアル > CSS の「margin-top」は「inline-block」では機能するのに、「inline」では機能しないのはなぜですか?

CSS の「margin-top」は「inline-block」では機能するのに、「inline」では機能しないのはなぜですか?

Patricia Arquette
リリース: 2024-12-13 11:04:24
オリジナル
160 人が閲覧しました

Why Does `margin-top` Work with `inline-block` but Not `inline` in CSS?

矛盾を明らかにする: Margin-Top は Inline-Block では機能するが、Inline では機能しない理由

CSS スタイルの領域では、表示プロパティとマージンの動作により、複雑なシナリオが発生する場合があります。そのような例の 1 つは、margin-top が inline-block では動作するが、inline では動作しないという興味深いケースです。

次の CSS スニペットを考えてみましょう。要素では、この宣言は上マージンの作成に失敗します。ただし、表示プロパティが inline-block に変更されると、margin-top が突然有効になります。

h1 {
    display: inline;
    margin-top: 25px;
}
ログイン後にコピー
この謎を解明するために、CSS2 仕様を深く掘り下げていきます。セクション9.2.4によると、インラインブロック要素はインラインレベルのブロックコンテナを生成し、基本的に要素をアトミックなインラインレベルボックスとして扱います。対照的に、セクション 9.2.4.

で述べられているように、インライン要素は 1 つ以上のインライン ボックスを生成します。重要なことに、CSS2 仕様のセクション 9.4.2 では、インライン要素は垂直マージンを無視し、水平マージンのみを考慮することが説明されています。一方、ブロックレベルの要素は、水平方向と垂直方向のマージンの両方を尊重します。

したがって、インライン要素とインラインブロック間の不一致は、インライン要素とブロック要素の動作の違いに起因します。 inline などのインライン要素は、水平方向に次々とレイアウトされるため、水平方向のマージンのみを考慮します。一方、インラインブロック要素は事実上ブロックとして扱われ、margin-top のような垂直マージンを尊重する機能など、ブロックレベル要素のよく知られた動作を示します。

以上がCSS の「margin-top」は「inline-block」では機能するのに、「inline」では機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート