1. 程式人生 > >CSS clearfix 清除浮動 用法詳解

CSS clearfix 清除浮動 用法詳解

   一.為什使用

        首先,我們來解釋一下為什麼要使用 clearfix(清除浮動)。 通常我們在寫html+css的時候,如果一個父級元素內部的子元素是浮動的(float),那麼常會發生父元素不能被子元素正常撐開的情況,如下圖所示:

                                

                                                                父級元素未被展開

        先來看一個簡單的clear的例子便於理解。 假設我們現有這樣一個佈局:

樣式清除前:

                           


       我們可以看到footer的佈局方式並不是我們想讓它做的,為了讓footer置於底部,可以給footer加上 clear:both; 

來清除footer兩側的浮動:

                .footer {  

                         clear: both; 

                 }

樣式清除後:

                            

理解了上面的例子之後,我來用一個例子解釋clearfix的作用:

                        

樣式為:



程式碼執行結果為:

            我們可以看到,雖然footer在container外部,卻沒位於底端,因為container內部子元素為float,導致container並沒有被撐開(圖中根本沒有黑色元素顯示出來)。 如果我們給footer新增 clear:both;,佈局問題可以被解決,但是container依舊沒有被撐開,有一種強行解決問題的感覺。 

    要解決此問題,我們可以給container新增一個類,叫做clearfix,下面是clearfix的實現形式(之一):


上述程式碼通過偽類 :after 在container後新增內容(content),來實現清除浮動


二.最佳實踐

實際應用中clearfix樣式見下面: