父子div发生margin重叠

代码如下:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <style>
  #father{
  width:500px;
  height:500px;
  background:pink;
  margin:10px;
  


  }
  #son{
   width:200px;
   height:200px;
   background:gray;
   
   margin:10px;
  }
  </style>
 </head>
 <body>
  <div id="father">
  <div id="son"></div>
  </div>
 </body>
</html>

启动浏览器效果如下,发现父子div设置的margin发生了重叠。

原因:所有同级或者嵌套的盒元素,它们的margin会发生重叠

解决办法:

1、修改父元素的高度,增加padding-top样式模拟(padding-top:1px;常用) 
2、为父元素添加overflow:hidden;样式即可(完美) 
3、为父元素或者子元素声明浮动(float:left;可用) 
4、为父元素添加border(border:1px solid transparent可用) 
5、为父元素或者子元素声明绝对定位

猜你喜欢

转载自blog.csdn.net/qq_33334214/article/details/80037008