为什么子元素设置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 。

猜你喜欢

转载自www.cnblogs.com/aiyr/p/9962748.html