小編給大家分享一下css中清除浮動(dòng)的示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元資陽(yáng)做網(wǎng)站,已為上家服務(wù),為資陽(yáng)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
在css中,當(dāng)我們對(duì)元素進(jìn)行float浮動(dòng)時(shí)就需要清除浮動(dòng),因?yàn)楫?dāng)元素進(jìn)行浮動(dòng)時(shí),元素就會(huì)脫離文檔流;并且在css中任何元素都可以浮動(dòng),浮動(dòng)元素會(huì)生成一個(gè)塊級(jí)框,而不論它本身是何種元素。
清除浮動(dòng),什么時(shí)候需要清除浮動(dòng),清除浮動(dòng)都有哪些方法 ?
一.什么時(shí)候需要清除浮動(dòng)?
我們對(duì)元素進(jìn)行了浮動(dòng)(float)時(shí),我們的元素就會(huì)脫離文檔流,像一只小船一樣漂流在文檔之上。
在 CSS 中,任何元素都可以浮動(dòng)。浮動(dòng)元素會(huì)生成一個(gè)塊級(jí)框,而不論它本身是何種元素。
float主要流行與頁(yè)面布局,然后沒有使用后沒有清除浮動(dòng),就會(huì)后患無窮。
知乎上截圖:
分析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;}
這里我沒有給最外層的p.outer 設(shè)置高度,但是我們知道如果它里面的元素不浮動(dòng)的話,那么這個(gè)外層的高是會(huì)自動(dòng)被撐開的。但是當(dāng)內(nèi)層元素浮動(dòng)后,就出現(xiàn)了影響:
1、父盒子的margin受到影響,無法實(shí)現(xiàn)左右居中,
2、我沒有給父盒子設(shè)置高度,浮動(dòng)后父盒子的高度沒有被撐開,圖片中撐開的高度是padding帶來的效果。
清除浮動(dòng)都有哪些方法 ?
清除(clear)也有4個(gè)可能值。最常用的是 both,清楚左右兩邊的浮動(dòng)。left 和 right 只能清楚一個(gè)方向的浮動(dòng)。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}
效果:
即:
【補(bǔ)充】:
使用空標(biāo)簽清除浮動(dòng).
方法二:父級(jí)p定義 overflow: auto(注意:是父級(jí)p也就是這里的 p.outer)
HTML:
<p class="outer over-flow"> //這里添加了一個(gè)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屬性來清除浮動(dòng)有一點(diǎn)需要注意,overflow屬性共有三個(gè)屬性值:hidden,auto,visible。我們可以使用hiddent和auto值來清除浮動(dòng),但切記不能使用visible值,如果使用這個(gè)值將無法達(dá)到清除浮動(dòng)效果,其他兩個(gè)值都可以。
【補(bǔ)充】:
使用overflow屬性
此方法有效地解決了通過空標(biāo)簽元素清除浮動(dòng)而不得不增加無意代碼的弊端。使用該方法是只需在需要清除浮動(dòng)的元素中定義CSS屬性:overflow:auto,即可。 overflow:auto;是讓高度自適應(yīng),zoom:1;是為了兼容IE6,也可以用height:1%;的方式來解決,注意,zoom不符合W3C標(biāo)準(zhǔn)。overflow:hidden也可以實(shí)現(xiàn)。overflow:hidden也可以實(shí)現(xiàn)。
方法三: 據(jù)說是最高大上的方法 :after 方法:(注意:作用于浮動(dòng)元素的父親)
先說原理:它就是利用:after和:before來在元素內(nèi)部插入兩個(gè)元素塊,從而達(dá)到清除浮動(dòng)的效果。其實(shí)現(xiàn)原理類似于clear:both方法,只是區(qū)別在于:clear在html插入一個(gè)p.clear標(biāo)簽,而outer利用其偽類clear:after在元素內(nèi)部增加一個(gè)類似于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;指清除所有浮動(dòng);content: ‘.’; display:block;對(duì)于FF/chrome/opera/IE8不能缺少,
其中content()可以取值也可以為空。visibility:hidden;的作用是允許瀏覽器渲染它,但是不顯示出來,這樣才能實(shí)現(xiàn)清楚浮動(dòng)。
即:
.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">
【補(bǔ)充】:
使用after偽對(duì)象清除浮動(dòng)
after偽對(duì)象非IE瀏覽器支持,所以并不影響到IE/WIN瀏覽器。具體寫法可參照以下示例。使用中需注意以下幾點(diǎn)。
a、該方法中必須為需要清除浮動(dòng)元素的偽對(duì)象中設(shè)置height:0,否則該元素會(huì)比實(shí)際高出若干像素;
b、content屬性是必須的,但其值可以為空,藍(lán)色理想討論該方法的時(shí)候content屬性的值設(shè)為”.”
再次again:當(dāng)一個(gè)內(nèi)層元素是浮動(dòng)的時(shí)候,如果沒有關(guān)閉浮動(dòng)時(shí),其父元素也就不會(huì)再包含這個(gè)浮動(dòng)的內(nèi)層元素,因?yàn)榇藭r(shí)浮動(dòng)元素已經(jīng)脫離了文檔流。也就是為什么外層不能被撐開了!
浮動(dòng)的特點(diǎn):
1.浮動(dòng)的元素,講向左或者向右浮動(dòng),浮動(dòng)到包圍元素的邊上,或者上一個(gè)浮動(dòng)元素的邊上為止。
2.浮動(dòng)的元素,不再占用空間,且浮動(dòng)元素的層級(jí)要高于普通元素。
3.浮動(dòng)的元素,一定是塊元素,不管之前是什么元素。
4.如果浮動(dòng)的元素沒有指定寬度的話,浮動(dòng)后會(huì)盡可能變窄,因此浮動(dòng)元素要指定寬和高。
5.一行的多個(gè)元素,要浮動(dòng)大家一起浮動(dòng)。
以上是css中清除浮動(dòng)的示例的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁(yè)題目:css中清除浮動(dòng)的示例
當(dāng)前地址:http://aaarwkj.com/article8/iipdip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、做網(wǎng)站、網(wǎng)站維護(hù)、網(wǎng)站營(yíng)銷、網(wǎng)站排名、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)