關於浮動與清除浮動
- time: 2016-02-23 21:00
- tags: css
在css布局中常用的一個屬性就是float,它可以讓div塊脫離原本的文檔流向左或向右浮動,但是...這個浮動有時候很煩,需要清除浮動,下面詳細整理一下關於浮動,為什麽要清除浮動和怎樣清除浮動。
一. float
float浮動樣式沒有靠中(浮動居中)的樣式,在css布局中如果需要讓標簽對象居中需要margin等其它方法(先偷懶下次整理(●°u°●)? ),這裏記住浮動靠右使用float:right,浮動靠左使用float:left樣式即可。例子到下面一起舉。
二.為什麽要清除浮動?
div嵌套式子元素浮動而父元素未浮動
後果:因為float會脫離文檔流,這樣就導致了父元素的height為0.
此時父元素div的height變為0,只顯示了3px的邊框:
三.如何清除浮動?
(第一類):在元素末尾添加一個內容帶有clear:both屬性的空元素
1.方法一:使用帶clear屬性的空元素
在在浮動元素的下面加了一個clear:both;的屬性,然後浮動被清除,父元素的高度被自動填充了:
2.方法二:使用CSS的:after偽元素
給浮動元素的容器添加一個clearfix的class,然後給這個class添加一個:after偽元素實現元素末尾添加一個看不見的塊元素(Block element)清理浮動。需要註意的是為了IE6和IE7瀏覽器,要添加一條zoom:1;觸發haslayout。
(第二類):觸發浮動元素父元素的 BFC (Block Formatting Contexts, 塊級格式化上下文),使到該父元素可以包含浮動元素
3.方法三:使用CSS的overflow屬性
給浮動元素的容器添加overflow:hidden;或overflow:auto;可以清除浮動,另外在 IE6 中還需要觸發 hasLayout ,例如為父元素設置容器寬高或設置 zoom:1。
4.方法四:給浮動的元素的容器添加浮動(但是這樣會使其整體浮動,影響布局,不推薦使用. )
顯示結果與方法三相同就不再列出。
四.後記
網上推薦說在網頁主要布局時使用:after偽元素方法並作為主要清理浮動方式;在小模塊如ul裏使用overflow:hidden;如果本身就是浮動元素則可自動清除內部浮動,無需格外處理;正文中使用鄰接元素清理之前的浮動。回顧一下洗洗睡覺(●°u°●)? 」
關於浮動與清除浮動