在设置元素的margin: 100px auto;时 无法显示顶部100px的外边距,只有设置边框时才有效,不理解问题在哪
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>定位问题</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
body .p1{
width: 900px;
height: 600px;
background-color: #009933;
margin: 50px auto;
}
.p2{
width: 600px;
height: 400px;
background-color: #990099;
margin: 100px auto;
}
.p3{
width: 400px;
height: 300px;
background-color: #CC0033;
border: 1px solid #ddd;
margin: 50px auto;
}
</style>
</head>
<body>
<div class="p1">
<div class="p2">
<div class="p3"></div>
</div>
</div>
</body>
</html>
当上方元素指定了margin-bottom,下方元素又指定了margin-top的时候,这两个margin就会发生合并,也有称之为塌陷的。塌陷的最终尺寸是两个值中较大的一个。
解决方法就是需要给父div(例如问题中的p1)设置:
1、边框,当然可以设置边框为透明:
.p1{border:1px solid transparent;}或
.p1{border-top:1px solid transparent;}
2、为父DIV添加padding,或者至少添加padding-top;
3、通过over-flow来解决,给父DIV写入:
.p1{over-flow:hidden;}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。