为什么子元素设置margin-top会作用在父元素上?

Posted aiyr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么子元素设置margin-top会作用在父元素上?相关的知识,希望对你有一定的参考价值。

原因在于:CSS 外边距合并

复现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
html * {
      margin:0;
      padding: 0;
}
</style>
<body>
    <section style = "background:orange;">
        <article style  =‘height:100px;margin-top:40px;background:red‘></article>
    </section>
</body>
</html>

这里子元素设置margin-top会作用在父元素上了。

解决方法:

1、为父元素设置padding。 
2、为父元素设置border。 
2、为父元素设置 overflow: hidden 。



以上是关于为什么子元素设置margin-top会作用在父元素上?的主要内容,如果未能解决你的问题,请参考以下文章

子元素在父元素中垂直居中

子元素使用margin-top影响父元素的解决方法

关于子元素的margin-top溢出和元素浮动对父元素高度影响解决方案

子元素的margin-top属性为啥会影响父元素的margin-top?

margin-top失效解决办法

margin的BUG