有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

margin外边距塌陷问题及处理方法

代码编程 cat 12个月前 (10-17) 44次浏览 已收录 0个评论 扫描二维码

什么是外边距塌陷?满足以下条件就会产生外边距塌陷现象:

  1. 产生在嵌套元素中(父元素与子元素)
  2. 相邻兄弟外边距合并现象(margin-top和margin-bottom)

demo:演示~

html:代码

    <div class="father">
        <div class="son">

        </div>
    </div>

 css代码:

    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .father {
            width: 300px;
            height: 300px;
            background-color: red;
        }
        .son {
            width: 100px;
            height: 100px;
            background-color: green;
        }
    </style>

 此时浏览器显示效果如下:

margin外边距塌陷问题及处理方法然后让上面的月经红和下面的帽子绿有点小距离然后给子元素加一个margin-top: 50px; 代码如下:

    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .father {
            width: 300px;
            height: 300px;
            background-color: red;
        }
        .son {
            width: 100px;
            height: 100px;
            background-color: green;
            margin-top: 50px;
        }
    </style>

margin外边距塌陷问题及处理方法这时候你会发现不是想要的效果:

给儿子一个上边距,爹也跟着有了外边距,这就是外边距塌陷,解决方案?

解决方案:

1. 给父元素加边框border
2. 给父元素加内边距padding
3. 给父元素加overflow:hidden

弊端:

1.给父元素加边框或者内边距都会导盒子变大,记得清除边距

此三种方式任意一种都可以轻松解决外边距塌陷问题,效果如图下图所示:

    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .father {
            width: 300px;
            height: 300px;
            background-color: red;
            /* border: 1px solid blue; */
            /* padding: 1px; */
            overflow: hidden;
        }
        .son {
            width: 100px;
            height: 100px;
            background-color: green;
            margin-top: 50px;
        }
    </style>
喜欢 (0)
cat
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址