我们知道当使用float的元素(即浮动元素)不会影响父元素的高度,更深入的说,浮动元素不是文档流的一部分。
有时候会带来一些问题,比如我们希望为父元素设置背景颜色,由于父元素的高度为0,所以背景颜色不能显示,为了解决这个问题,定义一个类clearfix,使父元素清除float带来的影响,css代码如下:
.clearfix:before,
.clearfix:after {
content: " ";
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
*zoom: 1;
}
在父元素中引用该类即可,这样做的效果就是浮动元素的祖先元素在高度上包含浮动元素,并消除了浮动,父元素的高度等于子元素中高度最大的值。示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>父元素float清除示例</title>
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Lato:300|Open+Sans:700">
<!--[if lt IE 9]>
<script src="js/html5shiv.js"></script>
<![endif]-->
</head>
<body>
<div class="container clearfix">
<main role="main" style="float:left">
...
</main>
<div class="sidebar" style="float:right">
...
</div>
</div>
</body>
</html>