如何解决margin‘塌陷‘?

133 阅读1分钟

如何解决margin‘塌陷‘?

在盒子模型开发我们可能会遇到:在互相嵌套 的 块级元素,子元素的 margin-top 会作用在父元素上的场景,结果导致父元素一起向下移动的问题,我们怎么应该用办法来解决它呢?

我的解决方法是:
  1. 给父元素设置border-top 或者 padding-top(分隔父子元素的margin-top)
  1. 给父元素设置(overflow:hidden )
  1. 转换成行内块元素
  1. 设置浮动

     <style>
        /* 
                外边距塌陷现象:互相嵌套的块级元素,给子元素设置上外边距,会导致父元素也一起跟着掉下来
                */
        * {
          margin: 0;
          padding: 0;
          box-sizing: border-box;
        }
    ​
        body {
          /* background-color: #000; */
        }
    ​
        .box {
          width: 500px;
          height: 500px;
          background-color: #6cf;
          /* 
                    1. 设置边框
                    border-top: 1px solid transparent;
                    2. padding-top: 1px;
                    3. oh overflow: hidden;(目前先知道可以解决外边距塌陷问题即可) 【推荐】
                    4. 父元素设置display: inline-block;
                */
    ​
          /* 1. 设置边框 */
          /* border-top: 1px solid transparent; */
    ​
          /* 2. 设置内边距 */
          /* padding-top: 1px; */
    ​
          /* 3. oh 溢出隐藏*/
          /* overflow: hidden; */
    ​
          /* 4. 把父元素设置为行内块元素 */
          /* display: inline-block; */
    ​
          /* 设置浮动 */
          float: left;
        }
    ​
        .son {
          width: 200px;
          height: 200px;
          background-color: pink;
          /* 儿子想要离家出走 带着爸爸 一起走*/
          /* margin-top: 100px; */
          margin-top: 100px;
        }
      </style>
    </head><body>
      <div class="box">
        <div class="son"></div>
      </div>
    </body>
    

    总结:以上方法仅供参阅,如有遗漏,可请诸君补充!