本文主要是講解如何在 html 中使用 clearfix 和 clear,針對那些剛開始了解 css 的童鞋。關於 clearfix 和 clear 的樣式在這里我就不寫了,具體樣式點擊此處。
下面就談談對於這兩個 class 的用法,首先我們先看個例子:
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"/> <title>如何在html中使用clearfix和clear</title> <link rel="stylesheet" type="text/css" href="/css/base.css" media="all"/> <style type="text/css"> .fl{float:left;} .demo{background:#ccc;} .item1{background:#f90;height:100px;width:100px;} .item2{background:#fc0;height:200px;width:100px;} </style> </head> <body> <div class="demo"> <div class="fl item1"></div> <div class="fl item2"></div> </div> </body> </html>
我們都知道使用浮動會產生很多未知的問題,通過上面的例子我們可以發現 class="demo" 的高度並沒有被里面的 div 給撐開,這是因為里面的 div 產生浮動而脫離了該文檔,因為 demo 本身沒有高度,所以我們看不到它的灰色背景。當然只要給 demo 一個高度就行了,但是這就脫離了本文的目的(有時我們希望外層 div 的高度由里面的內容來決定)。
既然是浮動產生的問題,那么只要清除浮動就可以了,相信高手們有很多清除浮動的方法,比如 overflow:hidden。下面我將介紹用 clearfix 和 clear 來清除浮動。
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"/> <title>如何在html中使用clearfix和clear</title> <link rel="stylesheet" type="text/css" href="/css/base.css" media="all"/> <style type="text/css"> .fl{float:left;} .demo{background:#ccc;} .item1{background:#f90;height:100px;width:100px;} .item2{background:#fc0;height:200px;width:100px;} </style> </head> <body> <h2>用 clear 清除浮動</h2> <div class="demo"> <div class="fl item1"></div> <div class="fl item2"></div> <div class="clear"></div> </div> <h2>用 clearfix 清除浮動</h2> <div class="clearfix demo"> <div class="fl item1"></div> <div class="fl item2"></div> </div> </body> </html>
我們發現,clearfix 主要是用在浮動層的父層,而 clear 主要是用在浮動層與浮動層之間,和浮動層同一級,如果想要撐開父層的高度,clear 就要放在最后。
很難說明這兩個方法哪個更好,只能說具體需求具體對待。
也許有人會問,clearfix 的樣式這樣寫為什么會清除浮動?這些樣式都有什么意義?這需要童鞋們對 css 的偽類有一定的了解,具體內容請點擊《閑聊CSS之關於clearfix——清除浮動》。