CSS float 浮動屬性

來源:互聯網
上載者:User
  本篇主要介紹float屬性:定義元素朝哪個方向浮動。

目錄:

1. 頁面配置方式:介紹文檔流、浮動層以及float屬性。

2. float:left :介紹float為 left 時的布局方式。

3. float:right :介紹float為 right 時的布局方式。

4. 相鄰元素含有float屬性:介紹相鄰元素含有float屬性時的布局方式。

1. 頁面配置方式

頁面配置方式,主要包含:文檔流、浮動層、float屬性。

1.1 文檔流

HTML頁面的標準文檔流(預設布局)是:從上到下,從左至右,遇塊(區塊層級元素)換行。

1.2 浮動層

浮動層:給元素的float屬性賦值後,就是脫離文檔流,進行左右浮動,緊貼著父元素(預設為body文本地區)的左右邊框。

而此浮動元素在文檔流空出的位置,由後續的(非浮動)元素填充上去:區塊層級元素直接填充上去,若跟浮動元素的範圍發生重疊,浮動元素覆蓋區塊層級元素。內嵌元素:有空隙就插入。

1.3 float 屬性介紹

  ① left :元素向左浮動。

  ② right :元素向右浮動。

  ③ none :預設值。

  ④ inherit :從父元素繼承float屬性。

1.4 樣本

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title>2.3-float屬性</title>    <style type="text/css">        #a        {            background-color:Red;            height:50px;            width:100px;        }        #b        {            background-color:Yellow;                height:50px;            width:200px;        }        #c        {            background-color:Blue;               height:50px;            width:300px;         }         #d         {            background-color:Gray;            height:50px;            width:400px;         }    </style></head><body><p id=a >p-a</p><p id=b>p-b</p><p id=c>p-c</p><input type="text" value="input1"  /><input type="text" value="input2" /><input type="text" value="input3 " /><p id=d>p-d</p><input type="text" value="input4 " /></body></html>

2. float:left

說明:元素向左浮動。

2.1 代碼變更

input2 添加:float:left

p-b 添加:float:left

p-d 添加:float:left

2.2 變更後視圖

  ① 瀏覽器的寬度“不夠長”時

    

  ② 瀏覽器的寬度"夠長"時

    

2.3 結論

當前元素分類(float:left) 下一個緊鄰元素分類(不含float) 結論
區塊層級元素(a) 區塊層級元素(b) b會填充a遺留下來的空間,a會和b發生重疊,a的圖層在上面。
內嵌元素(b) b會緊跟在a的後面。並根據自身內嵌元素的特點,是否換行。
內嵌元素(a) 區塊層級元素(b) b不會跟隨a的移動。
內嵌元素(b) b會緊跟在a的後面。並根據自身內嵌元素的特點,是否換行。

3. float:right

說明:元素向右浮動。

3.1 代碼變更

input2元素:添加 float:right

p-b 添加:float:right

p-d 添加:float:right

3.2 變更後視圖

  ① 瀏覽器的寬度“不夠長”時

  

  ② 瀏覽器的寬度"夠長"時

  

3.3 結論

當前元素分類(float:right) 下一個緊鄰元素分類(不包含float) 結論
區塊層級元素(a) 區塊層級元素(b) b會填充a遺留下來的空間,若a會和b發生重疊(父容器寬度減少),a的圖層在上面。
內嵌元素(b) b會填充a遺留下來的空間。
內嵌元素(a) 區塊層級元素(b) b不會跟隨a的移動。
內嵌元素(b) b會填充a遺留下來的空間。

4. 相鄰元素含有float屬性

因內嵌元素的特性,最好別把內嵌元素與區塊層級元素相鄰使用float屬性。

下面都以區塊層級元素為例:

預設視圖:

4.1 float:left

    給這三個p都添加 float:left

4.1.1 視圖

    ①瀏覽器的寬度"足夠長"

    

    ②瀏覽器的寬度"不夠長"

    

4.1.2 結論

    Ⅰ 相鄰的浮動元素,left屬性最前面的元素,排在最左面。

    Ⅱ 成為浮動元素後,在浮動層擁有內嵌元素的"特性",當多個浮動元素1排容不下時,就換行。

4.2 float:right

    給這三個p都添加 float:right

4.2.1 視圖

    ①瀏覽器的寬度"足夠長"

    

    ②瀏覽器的寬度"不夠長"

    

4.2.2 結論

    Ⅰ 相鄰的浮動元素,right屬性最前面的元素,排在最右面。

    Ⅱ 成為浮動元素後,在浮動層擁有內嵌元素的"特性",當多個浮動元素1排容不下時,就換行。

4.3 height高度不等的區塊層級元素

把p-a的height值設為大於p-b,三個p都添加 float:left後:

4.3.1 視圖

    ①瀏覽器的寬度"足夠長"

    

    ②瀏覽器寬度縮小時

    

    ③瀏覽器寬度進一步縮小時

    

4.3.2 結論

    Ⅰ height不相等的p浮動元素排序時,照擁有內嵌元素的"特性",當多個浮動元素1排容不下時,就換行。

4.3.3 解決瀏覽器寬度縮小變形

    把添加float的屬性的p元素嵌入在一個p中,並給此p添加width和height屬性。瀏覽器寬度縮小時,也不會發生變形。

    可參照 CSS HTML元素布局及Display屬性介紹

    

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.