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

本文主要是講解如何在 html 中使用 clearfix 和 clear,針對那些剛開始瞭解 css 的童鞋。關於 clearfix 和 clear 的樣式在這裏我就不寫了,具體樣式點擊此處css

下面就談談對於這兩個 class 的用法,首先咱們先看個例子:html

<!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 的高度由裏面的內容來決定)。spa

既然是浮動產生的問題,那麼只要清除浮動就能夠了,相信高手們有不少清除浮動的方法,好比 overflow:hidden。下面我將介紹用 clearfix 和 clear 來清除浮動。code

<!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 就要放在最後。htm

很難說明這兩個方法哪一個更好,只能說具體需求具體對待。blog

也許有人會問,clearfix 的樣式這樣寫爲何會清除浮動?這些樣式都有什麼意義?這須要童鞋們對 css 的僞類有必定的瞭解,具體內容請點擊《閒聊CSS之關於clearfix——清除浮動》文檔

相關文章
相關標籤/搜索