Problema de superposición de márgenes:
Los márgenes superior e inferior de dos elementos a nivel de bloque se pueden fusionar (contraer) en un solo margen, y su tamaño será el que tenga el valor de margen mayor. Este comportamiento se denomina colapso de margen.
La superposición sólo se producirá verticalmente.
Solución:
/* 兄弟之间重叠 */
<style>
.a,.b{
width: 100px;height: 100px;background-color: antiquewhite;margin: 10px;
}
.b{
/* 1、底部元素变为行内盒子 */
display: inline-block;
/* 或2、底部元素设置浮动*/
float: left;
/* 或3、底部元素的position的值为absolute/fixed*/
position: absolute;
}
</style>
<div class="a"></div><div class="b"></div>
/* 父子之间重叠 */
<style>
.father{
width: 200px;height: 200px;background-color: red;
/* 1、父元素加入overflow: hidden */
overflow: hidden;
/* 或2、父元素添加透明边框 */
border: 1px solid transparent;
}
.son{
width: 100px;height: 100px;background-color:blueviolet;margin: 10px;
/* 或3、子元素变为行内盒子 */
display: inline-block;
/* 或4、子元素加入浮动属性 */
float: left;
/* 或5、子元素加入定位 */
position: fixed;
}
</style>
<div class="contain">
<div class="a"></div>
<div class="b"></div>
</div>
<div class="father">
<div class="son"></div>
</div>