日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

css --- [读书笔记] 浮动(float) 与 清除浮动

發(fā)布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 css --- [读书笔记] 浮动(float) 与 清除浮动 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

說明

  • 源代碼
  • 學習

1. 浮動

1.1 CSS布局的三種機制

網(wǎng)頁布局的核心 — 利用 CSS 來擺放盒子

CSS提供了3種機制來設置盒子的擺放位置: 標準流、浮動和定位.

  • 標準流:
    • 塊級元素(div、hr、p、h1~h6、ul、ol、dl、form、table)會獨占一行,從上向下順序排列
    • 行內元素(span、a、i、em)按照順序從左到右排列,遇到父元素邊緣自動換行
  • 浮動:
    • 讓多個盒子一行顯示
  • 定位:
    • 將盒子定在瀏覽器的某一個位置
  • 1.2 浮動

    1.2.1 讓多個盒子在同一行顯示

    div{float: left; }
    • 元素的浮動式值: 設置了浮動屬性的元素會: 脫離普通標準流、移動到指定位置.

    1.3 什么是浮動(float)

    • 浮動: 會改變float屬性的display屬性(會變?yōu)轭愃朴趇nline-block)
    div{width: 200px;height: 200px;background-color: pink; }
    • 注意: 浮動的元素互相貼靠一起的,但是如果父級寬度裝不下這些盒子,多出的盒子會另起一行對齊

    1.4 浮動的目的(float)

    我們使用浮動的核心目的 — 讓多個塊級盒子在同一行顯示.

    1.5 浮動的應用

    浮動和標準流的父盒子搭配

    我們直到,浮動式脫標的,會影響下面的標準流元素,此時,我們需要給浮動的元素添加一個標準流的父親,這樣,最大化的減小了對其他標準流的影響.

    一個完整的網(wǎng)頁,是 標準流 + 浮動 + 定位

    1.6 浮動的擴展

    1) 浮動元素與父盒子的關系

    • 子盒子的浮動參照父盒子對齊
    • 不會與父盒子的邊框重疊,也不會超過父盒子的內邊距

    2) 浮動元素與兄弟盒子的關系

    在一個父級盒子種,如果前一個兄弟盒子是:

    - 浮動的,那么當前盒子會與前一個盒子的頂部對齊 - 普通流,那么當前盒子會顯示在前一個兄弟盒子的下方

    浮動只會影響當前的或者后面的標準流盒子,不會影響前面的標準流

    建議:如果一個盒子里面有多個盒子,如果其中一個盒子浮動了,其他兄弟也應該浮動


    2. 為什么要清除浮動

    2.1 為什么要清除浮動

    因為父級盒子很多情況下,不方便給高度,但是盒子浮動就不占有位置,最后父級盒子高度為0,就影響了下面的標準流盒子.

    • 總結:
      • 由于浮動元素不再占用文檔里的位置,所以它會對后面的元素排版產生影響
      • 準確地說,并不是清除浮動,而是清除浮動后造成的影響

    2.2 清除浮動的本質

    清除浮動主要是為了解決父級元素因為子級元素浮動引起內部高度為0的問題

    2.3 清除浮動的方法

    清除浮動只會,父級就會根據(jù)盒子自動檢測高度。父級有了高度,就不會影響下面的標準流了

    • 語法:
    選擇器{clear: both;} 屬性值描述
    left不允許左側有浮動元素
    right不允許右側有浮動元素
    both同時清除左右兩側浮動的影響

    但是我們實際工作做那個,幾乎只用 clear: both

    1) 額外標簽法(隔墻法)

    W3C推薦的做法是通過在浮動元素末尾添加一個空的標簽<div style="clear: both">,或其他標簽br等亦可
    • 優(yōu)點: 通俗易懂,書寫方便
    • 缺點: 添加許多無意義的標簽,結構化較差

    2) 父級元素添加overflow屬性方法

    可以給父級添加: overflow為 hidden| auto | scroll 都可以實現(xiàn)
    • 優(yōu)點: 代碼簡潔
    • 缺點: 內容增多時候容易造成不會自動換行導致內容被隱藏掉,無法顯示需要溢出的元素

    3) 使用after偽元素清除浮動

    :after方式為空元素額外標簽法的升級版,好處是不再單獨加標簽了

    使用方法:

    .clearfix:after{content: "";display: block;height: 0;clear:both;visibility: hidden; } .claerfix {*zoom: 1; /* ie6,7清除浮動的樣式 */ }
    • 優(yōu)點: 符合閉合浮動思想,結構語義化明確
    • 缺點: ie6~7不支持after

    4) 使用雙偽元素清除浮動

    使用方法:

    .clearfix:before, .clearfix:after {content:"";display: table; } .clearfix:after {clear: both; } .clearfix {*zoom: 1; }
    • 優(yōu)點: 代碼更簡潔
    • 缺點: 由于IE6~IE7不支持:after, 使用zoom:1觸發(fā)hasLayout.

    2.4 清除浮動總結

  • 父級沒高度
  • 子盒子浮動
  • 影響兄弟元素布局
  • 清除浮動的方式優(yōu)點缺點
    額外標簽法(隔墻法)通俗易懂,書寫方便添加許多無意義的標簽,結構化較差
    父級overflow: hidden書寫簡單溢出隱藏
    父級偽元素結構語義化正確兼容性問題(ie6~ie7)
    父級偽元素結構語義化正確兼容性問題(ie6~ie7

    總結

    以上是生活随笔為你收集整理的css --- [读书笔记] 浮动(float) 与 清除浮动的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。