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