首頁  >  文章  >  web前端  >  圖文詳解CSS clear:both清除浮動的運用

圖文詳解CSS clear:both清除浮動的運用

yulia
yulia原創
2018-09-19 10:54:1012045瀏覽

當我們用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;}

效果圖:

圖文詳解CSS clear:both清除浮動的運用

##兩個小盒子呈現了我們想要的效果,一個左浮動,一個右浮動,但是我們的大盒子沒有被撐開,這種現象就是由於浮動引起的。接下裡就用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;}

效果圖:

圖文詳解CSS clear:both清除浮動的運用##看圖一目了然,可以使用clear來清除float產生的浮動。注意clear樣式物件的新增位置,在此物件div標籤結束前加入即可清除內部小盒子產生浮動。一般常用clear:both來清除浮動,至於其它clear:left和clear:right這裡不做示範,有需要的小伙伴可以自己動手實踐,看看呈現什麼樣的效果。

#

以上是圖文詳解CSS clear:both清除浮動的運用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn