为什么会出现浮动?什么时候需要清除浮动?清除浮动的方式有哪些?浮动元素引起的问题和解决办法

浮动定位将元素排除在普通流之外,即元素讲脱离文档流,不占据空间。浮动元素碰到包含它的边框或者浮动元素的边框停留。

浮动元素引起的问题:

(1)父元素的高度无法被撑开,影响与父元素同级的元素

(2)与浮动元素同级的非浮动元素(内联元素)会跟随其后

(3)若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构

解决方法:

使用CSS中的clear:both;属性来清除元素的浮动可解决2、3问题,对于问题1,添加如下样式,给父元素添加clearfix样式:

.clearfix:after{

content: ".";

display: block;

height: 0;

clear: both;

visibility: hidden;

}

.clearfix{

display: inline-block;

}

/* for IE/Mac */

清除浮动的几种方法:

1,额外标签法,

(缺点:不过这个办法会增加额外的标签使HTML结构看起来不够简洁。)

2,使用after伪类

parent:after{

content:".";

height:0;

visibility:hidden;

display:block;

clear:both;

}

3,浮动外部元素

4,设置overflow为hidden或者auto