<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<style>
* {
padding: 0;
margin: 0;
}
html,
body {
width: 100%;
height: 100%;
}
</style>
<body>
<div style="background-color: #1e5b61; width: 100%; height: 100%">
<div style="width: 30%; height: 30%;margin-top: 5%; background-color: antiquewhite;font-size: 30px;">测试</div>
</div>
</body>
</html>
父级元素内部有子元素,如果给子元素添加margin-top样式,那么父级元素也会跟着下来,造成外边距塌陷。
原理:
一个盒子如果没有上补白(padding-top)和上边框(border-top),那么这个盒子的上边距会和其内部文档流中的第一个子元素的上边距重叠。
解决方案
.为父div设置overflow: hidden;