CSS マージンの重複と解決策の探索の詳細な説明

CSS マージンの重複と解決策の探索の詳細な説明

最近、CSS 関連の知識ポイントをいくつか見直し、CSS における典型的なマージンの重なりの問題を整理してまとめました。目的は、レビューの効果をテストし、他の人に役立つことを願っています。漏れがある場合は、フロントエンドのベテランにアドバイスを求めたいと思います。

質問: CSSレイアウトを使用すると、次の図に示すように、兄弟ノードまたは親子ノードによって設定された上部と下部の余白が重なり合うことがわかります。

    <スタイル>
        。外 {
            幅: 100%;
            背景色: ピンク;
        }

        .out>div {
            高さ: 100px;
            幅: 100%;
            背景色: rgb(223, 136, 23);
            マージン: 5px 0 10px;
        }
    </スタイル>
    <セクションクラス="out">
        <div>11</div>
        <div>22</div>
        <div>33</div>
    </セクション>

セクション全体の高さを確認すると、実際には 345px になるはずですが、親と子、兄弟の余白が重なり合っているため、高さは 320px になっていることがわかります。では、実際のアプリケーションでこの問題をどのように解決するのでしょうか?
この問題は、BFC (Full Block Formatting Context) を作成することで解決できます。まず、BFC の原理を明確にしましょう。

BFC 内の要素は外部の要素に影響を与えず、比較的独立した閉じた領域です。
隣接する BFC 間で垂直マージンの重なりはありません。つまり、要素のマージンが重ならないようにするには、BFC 領域を作成する必要があります。
BFC 領域はフローティング要素のボックスと重なりません。
BFC の高さを計算する際には、浮遊要素も考慮されます。
ブロック書式設定コンテキストを作成するにはどうすればよいですか?
1. オーバーフロープロパティを非表示に設定します。
2. float が none ではない。
3. 位置の値は静的でも相対的でもない。
4. 表示属性がテーブルの場合

    <スタイル>
        。外 {
            幅: 100%;
            背景色: ピンク;
            オーバーフロー: 非表示;
        }

        .out>div {
            高さ: 100px;
            幅: 100%;
            背景色: rgb(223, 136, 23);
            マージン: 5px 0 10px;
            /* オーバーフロー: 非表示; */
            フロート: 左;
        }
    </スタイル>
    <セクションクラス="out">
        <div>11</div>
        <div>22</div>
        <div>33</div>
    </セクション>

セクションの高さを再度確認すると、高さが 345 ピクセルに戻っていることがわかります。これは、BFC が高さを計算するときに、フローティング子要素の高さも考慮されていることを証明しています。

CSS マージンの重複の詳細な説明と解決策の探求に関するこの記事はこれで終わりです。CSS マージンの重複に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  int(3)とint(10)の値の範囲はmysqlで同じですか?

>>:  CSS最適化スキルの自己実践体験

推薦する

mysql 行列変換サンプルコード

1. 需要3 つのテーブルがあります。一定期間にわたるさまざまな抗生物質感受性の結果、つまり rep...

CSS でテキストシャドウと要素シャドウ効果を使用する

テキストシャドウの紹介CSSでは、 text-shadowプロパティを使用してテキストの影を設定しま...

mysqlは時間を自動的に追加し、時間を自動的に追加および更新する操作を実装します

時間フィールドは、データベースの使用時によく使用されます。よく使われるのは作成時間と更新時間です。し...

HTML ハイパーリンク内の中国語文字化けの分析と解決

Vm 内のハイパーリンク URL は、Get 要求のパラメータとして中国語と連結する必要があります。...

jQueryは画像の強調表示を実現します

ページ上の画像を強調表示することは非常に一般的です。ここでは、jQuery を使用して画像を強調表示...

ページリファクタリングスキル - コンテンツ

雑談はここまでにして、インターネット上で見つかる高性能な Yahoo ウェブサイトを構築するための数...

sysbenchツールによるMySQLデータベースのパフォーマンステストの実装方法

1. 背景Sysbench は、システムのハードウェア パフォーマンスをテストできるストレス テスト...

マスタークラスタに再参加する k8s ノードの実装

1. ノードを削除するkubectl delete node node01を実行します。 2. この...

Linux で Ceph 分散ソフトウェアをインストールして使用する方法に関するチュートリアル

目次序文1. 基本環境1. サービス配信2. ネットワーク構成(全ノード) 3. SSHパスワードフ...

デュアル VIP を使用した高可用性 MySQL クラスタの構築

目次1. プロジェクトの説明: 2. プロジェクト環境: 2. プロジェクトの手順: 3. プロジェ...

MySQL ロック(テーブルロック、行ロック、共有ロック、排他ロック、ギャップロック)の詳細な説明

現実世界では、鍵は外の世界から身を隠したいときに使用するツールです。コンピュータでは、複数のプロセス...

Linux での MySQL データベースのアンインストール

Linux で MySQL データベースをアンインストールするにはどうすればいいですか? 以下では、...

JS と Nodejs におけるイベント駆動型開発についての簡単な説明

目次イベント駆動型とパブリッシュ・サブスクライブ型ブラウザの JavaScript ではイベント駆動...

JavaScript はフロントエンド Web ページでカウントダウンを実装します

ネイティブJavaScriptを使用してカウントダウンを簡単に実装します。参考までに、具体的な内容は...

IE5.0以降のHTCコンポーネントの定義の概要

Microsoft IE 5.0 がリリースされる前は、Web プログラミングにおける最大の課題は、...