CSS浮動所產(chǎn)生的內(nèi)容溢出問題及清除浮動的方法小結(jié)
拋一塊問題磚(display: block)先看現(xiàn)象:
在非IE瀏覽器(如Firefox)下,當(dāng)容器的高度為auto,且容器的內(nèi)容中有浮動(float為left或right)的元素,在這種情況下,容器的高度不能自動伸長以適應(yīng)內(nèi)容的高度,使得內(nèi)容溢出到容器外面而影響布局的現(xiàn)象。這個現(xiàn)象叫浮動溢出,為了防止這個現(xiàn)象的出現(xiàn)而進行的CSS處理,就叫CSS清除浮動。
引用W3C的例子,news容器沒有包圍浮動的元素。
- .news {
- background-color: gray;
- border: solid 1px black;
- }
- .news img {
- float: left;
- }
- .news p {
- float: rightright;
- }
- <div class="news">
- <img src="news-pic.jpg" />
- <p>some text</p>
- </div>

清除浮動:
1,在浮動元素后面增加<br/>標(biāo)簽;
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- <br/>標(biāo)簽有自帶的清除浮動屬性;
2,在浮動元素后面增加一個清除浮動層;
- <div>
- <div style="float:left"></div>
- <div style="float:left"></div>
- <div style="clear:both"></div>
- </div>
3,給浮動元素添加overflow:auto樣式;
4,為最后浮動元素設(shè)置如下樣式:
- /* 清理浮動 */
- .clearfix:after {
- visibility:hidden;
- display:block;
- font-size:0;
- content:" ";
- clear:both;
- height:0;
- }
- .clearfix {
- zoom:1;
- }
其原理是,在「高級」瀏覽器中使用 :after 偽類在浮動塊后面加上一個非 display:none 的不可見塊狀內(nèi)容來,并給它設(shè)置 clear:both 來清理浮動。在 ie6 和 7 中給浮動塊添加 haslayout 來讓浮動塊撐高并正常影響文檔流。
5,另一種簡潔的辦法:
- .cf:before, .cf:after {
- content:"";
- display:table;
- }
- .cf:after {
- clear:both;
- }
- .cf {
- zoom:1;
- }
原理還是一樣的。使用 :after 偽類來提供浮動塊后的 clear:both。不同的是,隱藏這個空白使用的是 display: table。而不是設(shè)置 visibility:hidden;height:0;font-size:0; 這樣的 hack。
值得注意的是這里中的 :before 偽類。其實他是來用處理 top-margin 邊折疊的,跟清理浮動沒有多大的關(guān)系。但因為浮動會創(chuàng)建 block formatting context,這樣浮動元素上的另而一元素上如果剛好有 margin-bottom 而這個浮動元素剛好有margin-top 的話,應(yīng)該讓他們不折疊(雖然這種情況并不常見)。
相關(guān)文章
這篇文章主要介紹了清除css浮動的三種方法小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-19詳解css清除浮動float的七種常用方法總結(jié)和兼容性處理
這篇文章主要介紹了詳解css清除浮動float的七種常用方法總結(jié)和兼容性處理,非常具有實用價值,需要的朋友可以參考下2017-09-11
這篇文章主要介紹了淺談css中浮動和清除浮動帶來的影響,通過代碼示例和圖片展示詳細(xì)介紹講解了浮動的應(yīng)用和實現(xiàn)效果,需要的朋友可以參考下2017-08-14- 本文主要介紹了CSS解決浮動,清除浮動的幾種方法:1、設(shè)置父元素高度;2、overflow;3、增加子元素(塊級),并且設(shè)置其clear屬性值為both來解決(隔墻法、內(nèi)墻法);4、使2017-03-22
詳解CSS中zoom屬性或overflow:auto屬性清除浮動的作用
這篇文章主要為大家介紹了CSS中zoom屬性或overflow:auto屬性清除浮動的作用,文中通過實例代碼介紹的很詳細(xì),相信會對大家的理解和學(xué)習(xí)具有一定的參考借鑒價值,有需要的朋2016-11-26- 在大家在使用css的過程中,多多少少會遇到清除浮動這個問題。所以這篇文章給大家總結(jié)了div+css中關(guān)于清除浮動塌陷的4種方法,相信會對大家學(xué)習(xí)或者使用div+css能有所幫助,2016-10-17
- 下面小編就為大家?guī)硪黄獪\談CSS中的clear清除浮動。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06
- 這篇文章主要介紹了CSS清除浮動的方法詳解,值得注意的是并不是每次單純把浮動清除掉就可以解決相關(guān)問題,文中最后談到的閉合浮動的方案也非常值得一試,需要的朋友可以參考下2016-05-30
- 下面小編就為大家?guī)硪黄狣IV+CSS 清除浮動常用方法總結(jié)。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-06
這篇文章主要介紹了Css實現(xiàn)清除浮動的方法匯總,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-11




