清除浮動的幾種方法:
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屬性,都具有抑制浮動副作用的作用。