溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

css中清除浮動的示例

發(fā)布時間:2020-11-18 11:20:33 來源:億速云 閱讀:165 作者:小新 欄目:web開發(fā)

小編給大家分享一下css中清除浮動的示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在css中,當(dāng)我們對元素進(jìn)行float浮動時就需要清除浮動,因為當(dāng)元素進(jìn)行浮動時,元素就會脫離文檔流;并且在css中任何元素都可以浮動,浮動元素會生成一個塊級框,而不論它本身是何種元素。

清除浮動,什么時候需要清除浮動,清除浮動都有哪些方法 ?
一.什么時候需要清除浮動?

我們對元素進(jìn)行了浮動(float)時,我們的元素就會脫離文檔流,像一只小船一樣漂流在文檔之上。

在 CSS 中,任何元素都可以浮動。浮動元素會生成一個塊級框,而不論它本身是何種元素。
float主要流行與頁面布局,然后沒有使用后沒有清除浮動,就會后患無窮。

知乎上截圖:
css中清除浮動的示例

分析HTML代碼結(jié)構(gòu):

<p class="outer">
    <p class="p1">1</p>
    <p class="p2">2</p>
    <p class="p3">3</p>
</p>

分析CSS代碼樣式:

.outer{border: 1px solid #ccc;background: #fc9;color: #fff; margin: 50px auto;padding: 50px;}.p1{width: 80px;height: 80px;background: red;float: left;}.p2{width: 80px;height: 80px;background: blue;float: left;}.p3{width: 80px;height: 80px;background: sienna;float: left;}

css中清除浮動的示例

這里我沒有給最外層的p.outer 設(shè)置高度,但是我們知道如果它里面的元素不浮動的話,那么這個外層的高是會自動被撐開的。但是當(dāng)內(nèi)層元素浮動后,就出現(xiàn)了影響

1、父盒子的margin受到影響,無法實現(xiàn)左右居中,
2、我沒有給父盒子設(shè)置高度,浮動后父盒子的高度沒有被撐開,圖片中撐開的高度是padding帶來的效果。

css中清除浮動的示例

清除浮動都有哪些方法 ?
清除(clear)也有4個可能值。最常用的是 both,清楚左右兩邊的浮動。left 和 right 只能清楚一個方向的浮動。none 是默認(rèn)值。

方法一:添加新的元素 應(yīng)用 clear:both;
HTML:

<p class="outer">
    <p class="p1">1</p>
    <p class="p2">2</p>
    <p class="p3">3</p>
    <p class="clear"></p>
</p>

CSS:

.clear{clear:both; height: 0; line-height: 0; font-size: 0}

效果:
css中清除浮動的示例
即:
css中清除浮動的示例
【補充】:
使用空標(biāo)簽清除浮動.
css中清除浮動的示例

css中清除浮動的示例
方法二:父級p定義 overflow: auto(注意:是父級p也就是這里的 p.outer)

HTML:

<p class="outer over-flow"> //這里添加了一個class    <p class="p1">1</p>
    <p class="p2">2</p>
    <p class="p3">3</p>
    <!--<p class="clear"></p>--></p>

CSS:

.over-flow{    overflow: auto; zoom: 1; //zoom: 1; 是在處理兼容性問題
}

效果圖同上。

原理:使用overflow屬性來清除浮動有一點需要注意,overflow屬性共有三個屬性值:hidden,auto,visible。我們可以使用hiddent和auto值來清除浮動,但切記不能使用visible值,如果使用這個值將無法達(dá)到清除浮動效果,其他兩個值都可以。

【補充】:
使用overflow屬性
此方法有效地解決了通過空標(biāo)簽元素清除浮動而不得不增加無意代碼的弊端。使用該方法是只需在需要清除浮動的元素中定義CSS屬性:overflow:auto,即可。 overflow:auto;是讓高度自適應(yīng),zoom:1;是為了兼容IE6,也可以用height:1%;的方式來解決,注意,zoom不符合W3C標(biāo)準(zhǔn)。overflow:hidden也可以實現(xiàn)。overflow:hidden也可以實現(xiàn)。
css中清除浮動的示例

css中清除浮動的示例

方法三: 據(jù)說是最高大上的方法 :after 方法:(注意:作用于浮動元素的父親)
先說原理:它就是利用:after和:before來在元素內(nèi)部插入兩個元素塊,從而達(dá)到清除浮動的效果。其實現(xiàn)原理類似于clear:both方法,只是區(qū)別在于:clear在html插入一個p.clear標(biāo)簽,而outer利用其偽類clear:after在元素內(nèi)部增加一個類似于p.clear的效果。下面來看看其具體的使用方法:

.outer {zoom:1;}    /*==for IE6/7 Maxthon2==*/.outer:after {clear:both;content:'.';display:block;width: 0;height: 0;visibility:hidden;}   /*==for FF/chrome/opera/IE8==*/

其中clear:both;指清除所有浮動;content: ‘.’; display:block;對于FF/chrome/opera/IE8不能缺少,
其中content()可以取值也可以為空。visibility:hidden;的作用是允許瀏覽器渲染它,但是不顯示出來,這樣才能實現(xiàn)清楚浮動。
即:

.outer{border: 1px solid #ccc;background: #fc9;color: #fff; margin: 50px auto;padding: 50px;} .clearfix:after {content:'';display:block;clear:both;visibility:hidden;zoom:1;}
 <p class="outer clearfix">

【補充】:

使用after偽對象清除浮動

after偽對象非IE瀏覽器支持,所以并不影響到IE/WIN瀏覽器。具體寫法可參照以下示例。使用中需注意以下幾點。

a、該方法中必須為需要清除浮動元素的偽對象中設(shè)置height:0,否則該元素會比實際高出若干像素;

b、content屬性是必須的,但其值可以為空,藍(lán)色理想討論該方法的時候content屬性的值設(shè)為”.”

再次again:當(dāng)一個內(nèi)層元素是浮動的時候,如果沒有關(guān)閉浮動時,其父元素也就不會再包含這個浮動的內(nèi)層元素,因為此時浮動元素已經(jīng)脫離了文檔流。也就是為什么外層不能被撐開了!

浮動的特點:
1.浮動的元素,講向左或者向右浮動,浮動到包圍元素的邊上,或者上一個浮動元素的邊上為止。

2.浮動的元素,不再占用空間,且浮動元素的層級要高于普通元素。

3.浮動的元素,一定是塊元素,不管之前是什么元素。

4.如果浮動的元素沒有指定寬度的話,浮動后會盡可能變窄,因此浮動元素要指定寬和高。

5.一行的多個元素,要浮動大家一起浮動。

以上是css中清除浮動的示例的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI