本文主要是講解如何在 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 的偽類有一定的了解