1. 程式人生 > >輕鬆理解浮動特性與清除浮動方法

輕鬆理解浮動特性與清除浮動方法

浮動是css佈局裡,用的最多的屬性,浮動使用的不正確容易是的頁面混亂不堪。瞭解浮動與解決浮動帶來的影響是比較重要的。

1.浮動的影響

浮動的元素 脫離標準文件流(後面簡稱:脫標)。
    浮動的元素可以並排(包含div之類塊級元素),並且可以設定寬和高。因為行內元素不能設定寬和高是標準文件流的限制,所以脫標之後就沒有這些限制。(絕對定位、固定定位也可以脫離標準文件流)
    我們可以理解浮動的元素,先浮(脫標)再動(left),那麼脫標之後,該元素就不佔有標準文件流的空間,標準文件流的其他元素還是按照從上而下排列。這裡可以理解成上下倆層空間的。
    一個span元素浮動之後就可以設定寬和高,那麼就代表在浮動的世界裡,沒有塊級和行內元素之分。一個元素一旦浮動了,無論它是塊級的還是行內的,就能夠並排,能夠設定寬和高。
元素浮動後的特性:
 1.1

  浮動元素相互貼靠。

<div class="box1" style="width: 100px;height: 100px;background-color: red;float: left;">盒子1</div>
    <div class="box2" style="width: 100px;height: 100px;background-color: green;float: left;">盒子2</div>

這裡寫圖片描述
 1.2  浮動的元素有字圍效果。

<div class="box1" style="width: 100px;height: 100px;background-color: red;float: left;"
>盒子1</div> 蘭亭集序一些文字....<div class="box2" style="width: 100px;height: 100px;background-color: green;float: left;">盒子2</div>

這裡寫圖片描述

2.清除浮動

清除浮動的原因:
  1.因為浮動的元素實際上不佔有高,那麼沒有高的盒子,就沒有安全感。例如,想設定下margin都沒有辦法。
  2.因為浮動的元素對其它元素有影響,該影響就是佈局混亂。例如,想用2個ul做2行元素都沒辦法實現。
注意:沒有高度的父盒子是管不住浮動的兒子的對其他元素的影響的。
清除浮動的方法:


  1.給父盒子加高(height)
  這個方法不推薦,因為網站開發過程中需要浮動的元素比較多,通過加高的方法會使得css程式碼變多,拖慢頁面載入速度。
  2.外牆法(在盒子外面新增一個帶有clear:both屬性的盒子)
  3.內牆法(給盒子加上clear:both屬性,推薦使用)
  4.溢位影藏(overflow:hidden)
  給一個盒子添加了overflow:hidden,該盒子就會有高度,也可以用來清楚浮動的影響.