解决margin塌陷现象的办法

198 阅读1分钟

问题描述:

互相嵌套块级元素,如果给子元素设置margin-top会作用在父元素身上,这种现象就是嵌套块级元素塌陷。
tips:只有上下外边距才会有塌陷,左右外边距不会产生这种问题。 margin塌陷.jpg

解决办法:

  1. 给父元素设置padding-top或者border-top
  2. 给父元素设置overflow:hidden;
  3. 把子元素转换为行内块display:inline-block;
  4. 浮动、绝对定位、相对定位的盒子不会有嵌套块级元素外边距塌陷现象

代码案例

<!--HTML-->
    <div class="father">
        <div class="son"></div>
    </div>
/*css*/
  	* {
            margin: 0;
            padding: 0;
        }

        .father {
            width: 300px;
            height: 300px;
            background-color: pink;
            /* padding-top: 1px; */
            /* border-top: 1px solid transparent; */
            /* overflow: hidden; */
        }

        .son {
            /*display: inline-block;*/
            /* float: left; */
            margin-top: 20px;
            width: 200px;
            height: 200px;
            background-color: purple;
        }