當我們用div css進行頁面佈局時,經常會出現一些意想不到的結果,比如畫面排版亂了,沒有呈現我們想要的樣式,又或者設置一些屬性不起作用,這些詭異的事情都非常讓人頭痛。其實,這些都出乎意料的事情是由浮動float引起的,它也是有解決辦法的。這篇文章就跟大家介紹如何用clear:both清除浮動,從而讓頁面回歸正常。還不了解clear both的同學,可以參考一下,希望對你有用。
首先,大家應該要清楚浮動float的一些特質。如果給元素設定了浮動,這個元素就相當於塊級元素,並且可以對其設定寬和高;浮動會使其後面的元素脫離標準流;若父元素裡的子元素全為浮動元素,父元素高度自適應問題。
1、CSS clear屬性
屬性值:
none : 允許兩邊都可以有浮動物件
both : 不允許有浮動物件
left : 不允許左邊有浮動物件
right : 不允許右邊有浮動物件
寫法示範:#box{clear:both/left/right/none}
#2、clear:both清除浮動的適用場景
在頁面佈局時,使用了浮動以後,導致頁面排版混亂,這時我們通常會用clear:both來清除浮動。舉個常見的例子,一個大盒子裡面有兩個小的盒子,大盒子沒有設定高度,並且對小盒子使用了css float樣式,這時大盒子的背景或邊框不能正常顯示,那麼我們就需要使用clear:both來清除浮動,使頁面恢復正常。
3、clear:both的運用實例
描述:設定外面大盒子的長度為500px ,不給他高度,讓它自己撐起來,它的邊框(css border)為紅色,背景(css background)為粉紅色。大盒子裡面有兩個小的盒子,一個設定float:right,另一個設定float:left,背景顏色都為綠色,寬度為200px,高度為150px。接下來我們觀察一下,看看浮動產生了什麼效果。程式碼如下:
HTML部分:
<div class="box"> <div class="left">左浮动left</div> <div class="right">右浮动right</div> </div>
CSS部分:
.box{width:500px;background:pink;border:1px solid #F00;padding:5px;} .left,.right{background:#008000;width:200px;height:150px;} .left{ float:left;} .right{ float:right;}
效果圖:
##兩個小盒子呈現了我們想要的效果,一個左浮動,一個右浮動,但是我們的大盒子沒有被撐開,這種現象就是由於浮動引起的。接下裡就用clear:both清除浮動,看看能不能讓大盒子被撐開。 我們在大盒子的標籤前面加上空的div,(div作為大盒子的最後一個子盒子),並為這個空div添加CSS樣式,clear: both,程式碼如下:HTML部分:<div class="box"> <div class="left">左浮动left</div> <div class="right">右浮动right</div> <div class="clear"></div> </div>CSS部分:
.box{width:500px;background:pink;border:1px solid #F00;padding:5px;} .left,.right{background:#008000;width:200px;height:150px;} .left{ float:left;} .right{ float:right;} .clear{clear: both;}效果圖:
##看圖一目了然,可以使用clear來清除float產生的浮動。注意clear樣式物件的新增位置,在此物件div標籤結束前加入即可清除內部小盒子產生浮動。一般常用clear:both來清除浮動,至於其它clear:left和clear:right這裡不做示範,有需要的小伙伴可以自己動手實踐,看看呈現什麼樣的效果。
#以上是圖文詳解CSS clear:both清除浮動的運用的詳細內容。更多資訊請關注PHP中文網其他相關文章!