<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>子盒子在父盒子垂直居中</title>
<style>
.father{
width:400px;
height:400px;
background-color:#0f0;
}
.son{
width:200px;
height:200px;
margin-top:50px;
background-color:#F00;
}
</style>
</head>
<body>
<div class="father">
<div class="son"></div>
</div>
</body>
</html>
原因:
1、当一元素包含在一元素之中,如果他们之间没有填充或者边框分隔,那么他们的顶或底会发生会发现折叠
2、只有普通流中的垂直边框会发生折叠,浮动框或者绝对框或者行内框之间边界不会重叠
解决办法:
1、给父盒子添加padding(常用)
2、给父盒子添加border(可用)
3、给父盒子或者子盒子添加浮动(可用)
4、给父盒子或者子盒子添加绝对定位(可用)
5、给父盒子添加overflow:hidden(完美)