【css】清除浮動(clearfix 和 clear)的用法


本文主要是講解如何在 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——清除浮動》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM