CSS的float浮動效果在某些情況下非常不穩定,控制不好的時候一般還是清除浮動為妙,這裡我們就來總結CSS浮動所差生的內容溢出問題及清除浮動的方法
拋一塊問題磚(display: block)先看現象:
在非IE瀏覽器(如Firefox)下,當容器的高度為auto,且容器的內容中有浮動( float為left或right)的元素,在這種情況下,容器的高度不能自動伸長以適應內容的高度,使得內容溢出到容器外面而影響(甚至破壞)佈局的現象。這個現象叫浮動溢出,為了防止這個現象的出現而進行的CSS處理,就叫CSS清除浮動。
引用W3C的例子,news容器沒有包圍浮動的元素。
.news { background-color: gray; border: solid 1px black; } .news img { float: left; } .news p { float: rightright; }
<p class="news"> <img src="news-pic.jpg" / alt="總結CSS浮動所差生的內容溢出問題及清除浮動的方法" > <p>some text</p> </p>
#清除浮動:
##1,在浮動元素後面增加
標籤;
<br/>标签有自带的清除浮动属性;
#2,在浮動元素後面增加一個清除浮動層;
<p> <p style="float:left"></p> <p style="float:left"></p> <p style="clear:both"></p> </p>
3,為浮動元素新增overflow:auto樣式;
#4,設定最後一個浮動元素如下樣式:#
/* 清理浮动 */ .clearfix:after { visibility:hidden; display:block; font-size:0; content:" "; clear:both; height:0; } .clearfix { zoom:1; }
5,另一個簡潔的方法:
.cf:before, .cf:after { content:""; display:table; } .cf:after { clear:both; } .cf { zoom:1; }
以上是總結CSS浮動所差生的內容溢出問題及清除浮動的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!