标签:
近来在做仿站练习的时候看到每个网站采用浮动清理的方法都各不相同,有的甚至同一个网页采用了不同的清理方法,是时候要在这方面做个总结了。
之所以要进行浮动清理,是因为浮动的元素会脱离普通流,导致父容器不能够包含浮动元素。
我们希望是这样:
结果是这样:
看了一下网上的方法,无非是两种原理:
1、利用clear属性进行清理
2、将父容器形成BFC
先说clear属性:
1 .clearfix:after { 2 content: "."; 3 height: 0; 4 visibility: hidden; 5 display: block; 6 clear: both; 7 }
这一种方法跟上面的原理一样,只不过插入的动作改由CSS来完成。
通过将这个类添加到父容器当中,会在父容器的末尾增加了一个高度为0、具有清除属性的、不可见的块级元素。
再说BFC:
BFC能清理浮动主要运用的是它的布局规则:
浮动清理利用的主要是第六条规则,只要将父容器触发为BFC,就可以实现包含的效果。
那么触发BFC有哪几种方法?
这里就解释了w3school上面通过对父容器添加overflow: auto;或overflow: hidden;能清理浮动的原因了。
其实就是将父容器触发为BFC,导致其计算高度时将浮动元素的高度计算在内。
明白了这个原理,可以知道对父容器添加position: absolute;或者其他满足触发BFC条件的也可以达到清除浮动的目的。
标签:
原文地址:http://www.cnblogs.com/lianghongjin/p/4741858.html