美文网首页
上下margin传递和上下margin折叠

上下margin传递和上下margin折叠

作者: 未路过 | 来源:发表于2022-09-02 18:06 被阅读0次

    1.上下margin传递(子传父)

    系统默认是你想给父元素设置。

    1.1 margin-top传递

    一个大盒子里面有一个小盒子,想让小盒子向下移动100px,这时候如果给小盒子设置margin-top=50的话,就会出现上下margin传递。


    image.png

    给红色小盒子设置margin-top之后


    image.png
    发现大盒子向下移动了50px,小盒子相对于大盒子的位置没有变化。这个就是上下margin传递。但是左右是不会传递的。
    image.png
    <div class="father">
        <div class="son"></div>
      </div>
    
      <style>
        .father{
          height: 200px;
          width: 200px;
          background-color: green;
        }
        .son{
          height: 100px;
          width: 100px;
          background-color: red;
          margin-left: 50px;
        }
      </style>
    

    1.2margin-bottom传递

    很少见。必须在特殊情况下才会传递。
    父盒子的高度是由儿子的高度撑起来的,也就是给父盒子高度设置auto,或者不给父亲设置高度(因为height默认值就是auto)。


    image.png
    .father{
       /* height: auto; */
          width: 200px;
          background-color: green;
    
        }
        .son{
          height: 100px;
          width: 100px;
          background-color: red;
          margin-bottom: 50px;
        }
      </style>
    </head>
    <body>
      <div class="father">
        <div class="son"></div>
      </div>
      <div>hahahahaahhh</div>
    </body>
    

    1.3总结

    ◼ margin-top传递
     如果块级元素的顶部线和父元素的顶部线重叠,那么这个块级元素的margin-top值会传递给父元素
    ◼ margin-bottom传递
     如果块级元素的底部线和父元素的底部线重叠,并且父元素的高度是auto,那么这个块级元素的margin-bottom值会传递给父元素
    ◼ 如何防止出现传递问题?
     给父元素设置padding-top\padding-bottom
     给父元素设置border border:1px solid transparent这种不好,还是会占据距离。
     触发BFC: 设置overflow为auto

    2.上下margin的折叠(兄弟折叠,父子折叠)

    ◼ 垂直方向上相邻的2个margin(margin-top、margin-bottom)有可能会合并为1个margin,这种现象叫做collapse(折叠)
    ◼ 水平方向上的margin(margin-left、margin-right)永远不会collapse
    ◼ 折叠后最终值的计算规则
     两个值进行比较,取较大的值
    ◼ 如何防止margin collapse?  只设置其中一个元素的margin


    image.png

    设置大盒子里面小盒子的位置,最好给大盒子使用padding,而不是给小盒子使用margin。
    Margin是元素和元素之间的距离,是给兄弟元素设置的。
    Padding是内容和边框的距离,是给父子设置的。

    相关文章

      网友评论

          本文标题:上下margin传递和上下margin折叠

          本文链接:https://www.haomeiwen.com/subject/qmkjnrtx.html