検索

ホームページ  >  に質問  >  本文

前端 - margin的问题,那个老哥帮我解释下

<!DOCTYPE html>
<html lang="en">
<head>
    <title>test</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }

        .a{
            height:48px;
            background: #eee;
        }

        .b{
            height:520px;
            background: #ff4949;
        }

        .c{
            width:90%;
            height:300px;
            margin:20px auto;
            background: #fff;
        }
    </style>
</head>
<body>
<p class="a"></p>
<p class="b">
    <p class="c"></p>
</p>

</body>
</html>

p.c 不是应该被红色环绕吗?烦请那个老哥解释下。

伊谢尔伦伊谢尔伦2845日前1018

全員に返信(5)返信します

  • 大家讲道理

    大家讲道理2017-04-17 14:55:40

    BFC では、2 つの隣接 (兄弟または親子) があり、境界線やパディングがないため、要素の margin-top とその最初の通常のドキュメント フロー子要素の margin-top によって margin-collapse (外側) が生成されます。折り目からのマージン)。

    b に境界線を追加します。

    ボーダー: 1 ピクセルの単色透明;

    またはパディングを追加します。

    パディング: 1px 0;

    は削除できます。

    または、overflow: hidden; を b に追加できます。

    次を参照してください: BFC とマージン崩壊の詳細な理解

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 14:55:40

    .b に overflow: hidden; を追加するだけです。

    オーバーフローでは表示以外の値 (hidden、auto、scroll) が使用されるため、BFC がトリガーされます。
    BFCとは何ですか?
    ブロック フォーマット コンテキスト (ブロック レベル フォーマット コンテキスト)
    BFC を持つ要素は、コンテナ内の要素は外側の要素のレイアウトに影響を与えず、独立したコンテナとみなすことができます。BFC には通常のコンテナがあります。浮動要素を含める機能など、浮動要素を含めることができるいくつかの機能があります。前述の 2 番目のタイプの float クリア メソッド (オーバーフロー メソッドなど) は、浮動要素の親要素の BFC をトリガーします。要素が浮いているため、高さの崩壊の問題が防止されます。

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 14:55:40

    overflow: hidden; この文を p.b. に追加します。

    返事
    0
  • 迷茫

    迷茫2017-04-17 14:55:40

    「子要素のマージンが親要素に影響する」を検索

    返事
    0
  • ringa_lee

    ringa_lee2017-04-17 14:55:40

    これはオーバーラップマージンと呼ばれ、子要素のマージンは親要素に影響し、2 つのマージンが大きいほどコンテナ全体のマージンも大きくなります。現時点では、BFC をトリガーすることを選択する必要があります。BFC がトリガーされる状況は次のとおりです。

    • ルート要素

    • float 属性は none ではありません。

    • 位置は絶対または固定です。

    • 表示はインラインブロック、テーブルセル、テーブルキャプション、フレックス、インラインフレックスです。

    • オーバーフローは表示されません。

    解決策:

    親にoverflow:hiddenを追加するか、透明枠を追加すると解決します。
    

    返事
    0
  • キャンセル返事