這篇文章給大家介紹怎么在CSS3中清除浮動,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
專業(yè)從事成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè),高端網(wǎng)站制作設(shè)計,小程序定制開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊竭力真誠服務(wù),采用HTML5建站+CSS3前端渲染技術(shù),成都響應(yīng)式網(wǎng)站建設(shè),讓網(wǎng)站在手機、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項小組,與您實時在線互動,隨時提供解決方案,暢聊想法和感受。
1、 浮動本來的意義
浮動的意義原本僅是用來讓文字環(huán)繞在圖片周圍而已。
通過上圖可以看到,設(shè)置圖片左浮動可以將圖片從正常文檔流中抽取出來,后面的元素會忽略浮動元素原來的位置,所以可以看到以塊元素顯示的span標(biāo)簽插入到了圖片下面,但是,我們發(fā)現(xiàn)文字卻不會嵌入到圖片下面,因為這就是浮動最純粹的意義--讓文字環(huán)繞在圖片周圍(關(guān)于為什么文字不會插入浮動元素下面在網(wǎng)上也有一些討論,大家可以去搜索一下,本文在此就不做更詳細(xì)的解釋了)。
PS: 如果想讓文字也插入到浮動元素下面,可以通過設(shè)置絕對定位來實現(xiàn)。
// html代碼 ![img](/upload/otherpic70/2944582-8c9f0eba7dce2e55.jpg%7CimageView2/2/w/1240) 想象我是一大段文字![img](/upload/otherpic70/2944582-8c9f0eba7dce2e55.jpg%7CimageView2/2/w/1240) 想象我是一大段文字
// css代碼 .origin1 span { display: block; width: 250px; height: 120px; background-color: #78f182; } .float1 img{ float: left; } .float1 span { display: block; width: 250px; height: 120px; background-color: #78f182; }
2、 浮動經(jīng)常被用來做什么
因為浮動可以讓塊狀元素并排顯示,所以經(jīng)常用來做導(dǎo)航欄,內(nèi)容分塊欄等布局。
// html代碼
// css代碼 .section2 li{ list-style: none; float: left; padding: 20px; height: 20px; background-color: #1249c3; border-right: 1px solid #a0a2a2; } .section2 li a { color: #fff; }
3、 為什么要清除浮動
通過上圖可以看到,當(dāng)三個板塊左浮動以后,因為它們脫離了正常文檔流,所以它們的父元素ul在不設(shè)置高度的情況下,無法被子元素?fù)伍_(能夠看到背景色是因為我設(shè)置了ul的padding為10px),所以當(dāng)你在后邊新增元素的時候,自然會排在ul后邊,也就是插入到了3個浮動的板塊下面。
這并不是我們想要的,這就是要清除浮動的原因。
// html代碼
互動板塊 li
學(xué)習(xí)板塊 li
留言板塊 li
// css代碼 ul { padding: 20px; background-color: #b7db05; } ul li { width: 200px; height: 200px; background-color: #e3e3e3; margin-right: 20px; text-align: center; float: left; } .new { height: 50px; background-color: #1be751; }
4、 如何清除浮動
(1) 在最后一個浮動的 li 元素后邊新增一個空的塊狀元素div,并設(shè)置clear:both以清除所有浮動。
// html代碼
互動板塊 li
學(xué)習(xí)板塊 li
留言板塊 li
效果: ul后邊的div元素確實可以在浮動元素下邊排列,并且設(shè)置margin、padding等也是針對浮動元素的下邊框。
缺點: 多出了一個冗余標(biāo)簽,并沒有任何結(jié)構(gòu)意義。
(2) 設(shè)置父元素ul的overflow: hidden或者overflow: auto。
// css代碼 ul { padding: 20px; background-color: #e7a5b8; overflow: hidden; }
效果: 對于ul后面的元素來說,它們可以在浮動元素下邊依次排列了。
缺點: 采用這種overflow方法時可能會對采用定位position的元素產(chǎn)生影響,因為在ul的范圍內(nèi),超出的部分將會被隱藏,所以如果定位元素處在ul超出的范圍內(nèi),那么會被隱藏。
(3) 采用偽類方法,在最后一個浮動元素的后邊,添加clear:both。
// css代碼 ul:after { content: ""; clear: both; display: block; }
效果: 很好的清除了浮動帶來的影響,并且沒有附加作用,也沒有新增無語義的標(biāo)簽。
缺點: 暫時還沒發(fā)現(xiàn)。
關(guān)于怎么在CSS3中清除浮動就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。