完善clearfix
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .box1{ width: 300px; height: 300px; background-color: #BBFFAA; } .box2{ width: 200px; height: 200px; background-color: yellow; /* 子元素和父元素相邻垂直外边距会发生重叠,子元素的外边距会传递给父元素 使用空的table标签可以隔离父子元素的外边距,阻止外边距重叠 */ margin-top: 100px; } .box3{ border: 10px solid red; } .box4{ width: 100px; height: 100px; background-color: blue; float: left; } /* 解决父子元素外边距重叠 */ /* .box1::before{ content: ""; */ /* display:table可以将一个元素设置为表格显示 */ /* display: table; } */ /**/ /* 经过修改后的clearfix是一个多功能的 既可以解决高度塌陷,有可以确保父元素和子元素的垂直外边距不会重叠 */ .clearfix:before, .clearfix::after{ content: ""; display: table; clear: both; } /*兼容IE6*/ .clearfix{ zoom: 1; } /*解决父元素高度塌陷*/ /* .clearfix::after{ content: ""; */ /*也可以写成table*/ /* display: block; clear: both; } */ </style> </head> <body> <div class="box3 clearfix"> <div class="box4"></div> </div> <div class="box1 clearfix"> <div class="box2"></div> </div> </body> </html>
子元素和父元素相邻垂直外边距会发生重叠,子元素的外边距会传递给父元素
使用空的table标签可以隔离父子元素的外边距,阻止外边距重叠
经过修改后的clearfix是一个多功能的
既可以解决高度塌陷,又可以确保父元素和子元素的垂直外边距不会重叠
.clearfix:befor,.clearfix:after{
content:" ";
display:table;
clear:both;
}
兼容IE6
.clearfix{
zoom:1;
}