如何去除浮动
清除浮动的几种方法:
1. clear:both/left/right
clear属性是指元素的两边或某一侧不能有浮动元素,为了达到这个目的,在 CSS1 和 CSS2 中,这是通过自动为清除元素(即设置了 clear 属性的元素)增加上外边距实现的。在 CSS2.1 中,会在元素上外边距之上增加清除空间,而外边距本身并不改变。最终使这个元素被挤到浮动元素的下外边距以下。 以这种方法为原理,通过在所有浮动元素下方添加一个clear:both的元素,可以消除float的破坏性。更高级的方法是通过伪元素选择器在父元素后面增加了一个clear:both的元素,也就是bootstrap采用的.clearfix.clearfixt:after{ display:block/table; clear:both; content:”“;}
2. overflow:hidden/auto
使用这种方法的原理是overflow需要父元素紧贴子元素,所以父元素需要撑大来包裹子元素,需要注意当设置成auto时,如果父元素内容过多,会出现滚动条,而使用hidden时,不能和position配合使用,因为超出的尺寸的会被隐藏。这个方法不适用于IE6/7,需要加上一个IE特有的属性zoom:1
3. 给父元素设置高度(不推荐)
清除浮动的方法基本上属于clear和使父元素包裹两大类,设置overflow属性,使父元素浮动等都属于第二类,同理,可以设置父元素position:absolute,display:inline-block等,一些具有包裹性的CSS属性,都具有抑制浮动副作用的作用。