今天早上忙完了,下午没事就写个文章,很想系统的写一个系列的文章,但我发现并不容易,只有想到什么就写什么了。
之前面试的时候,经常被问到关于清除浮动的方法,下面就是我总结的几种常用的方法:
方法一:
使用一个空标签,来清除浮动;
<div style="clear: both;"></div>
注意:
- 这个
clear-box
,必须写在所有浮动元素
的最后一个浮动元素后面
,否则无效; - 原理: 设置css属性
clear: both;
弊端:
就是添加了一个没有语意的空标签;
方法二:
使用 overflow
给包含浮动元素的父标签
上添加css属性over-flow: auto; zoom: 1;
注意:
- 给
包含浮动元素的父元素
添加属性; -
zoom: 1;
用于兼容低版本的IE浏览器,这里指IE6
;
方法三:
使用after
伪类对象来清除浮动;
但它目前只适用于非IE浏览器;
特别要注意的是:
- 该方法必须为需要清除浮动的元素的伪对象设置高度为零,即
height: 0;
,不然的话,该元素会比实际高出几个像素值; - 必须给这个伪对象,设置
content
属性,值为“.”
或者为空“”
方法四:
最不可取的方法,就是浮动外部元素,敌动我动,敌不动我不动,就这个战术;
这里不推荐使用这种做法,也就不细说了;
方法五:
这是我刚开始经常布局时候用的,我发现我使用浮动从来没遇见过其他人碰到的问题,这大概就是因为我设了高度吧;
给包含浮动元素的父元素,也就是给那个容器设置一个高度,这样所有浮动的元素智能在它的父元素内进行浮动;
需要注意的是:
- 设置的高度,必须大于等于浮动元素的高度;
相比较之下,方法2和方法3更好,而Bootstrap中清楚浮动的原理使用的就是方法3;
我该开始最常用的就是方法1和方法5,后来经常使用方法3了;
----萝卜青菜,各取所爱!----