目錄
浮動" >浮動
1. 什麼是浮動
2. 浮動的影響
3. 浮動的應用
清除浮動" >清除浮動
在子元素上清除
在父元素上清除,即BFC
首頁 web前端 css教學 CSS浮動與浮動清除(BFC)簡單教學

CSS浮動與浮動清除(BFC)簡單教學

Apr 04, 2017 am 10:59 AM

浮動

1. 什麼是浮動

當元素的<a href="http://www.php.cn/wiki/919.html" target="_blank">float</a> 屬性不為none 時就產生了浮動。

<p class="float">float</p>
登入後複製
.float {
  float: left;
  width: 100px;
  height: 100px;
  background-color: #ddd;
}
登入後複製

2. 浮動的影響

  1. 浮動會使元素脫離文件流,具體表現為:

  • 父元素高度塌陷,即不會包含浮動元素。
    例如上面的程式碼就會表現為

    CSS浮動與浮動清除(BFC)簡單教學

    父元素高度塌陷

  • 文字環繞。

    CSS浮動與浮動清除(BFC)簡單教學

    文字環繞效果


    #可以注意到這裡.normal元素的寬度覆蓋了.float元素,但是.float元素下是沒有文字的,也就是說文字被「擠」出來了,這是因為它雖然會脫離文檔流,但是不會脫離文字流。這個效果也是float屬性的本意。其程式碼如下:

    
      <p class="float">float</p>
      

    正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素正常元素

    登入後複製
    body {
      background-color: #ccc;
    }
    .float {
      float: left;
      width: 100px;
      height: 100px;
      background-color: #ddd;
    }
    .normal {
      background-color: #fff;
    }
    登入後複製
  • 浮動元素的外邊距不會合併。
    關於外邊距合併的相關內容可以戳這裡。

  • 元素一旦浮動便會變成行內塊元素,即 <a href="http://www.php.cn/wiki/927.html" target="_blank">display</a>: inline-block

  • 3. 浮動的應用

    • 上面提到的文字環繞。

    • 寫一個三列佈局,左右固定寬度,中間自適應。

      <body>
        <p class="left float">left</p>
        <p class="right float">right</p>
        <p class="mid">自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素</p>
      </body>
      登入後複製
      body {
        background-color: #ccc;
      }
      .float {
        float: left;
        width: 100px;
        height: 100px;
        background-color: #ddd;
      }
      .left {
        float: left;
      }
      .right {
        float: right;
      }
      .mid {
        height: 100px;
        background-color: #fff;
        margin: 200px; /*故意加上了上下 margin 值*/
      }
      登入後複製

      這裡我故意加上了上了margin 值,可以看到效果:

      CSS浮動與浮動清除(BFC)簡單教學

      三列佈局

      body 也跟著.midmargin 往下掉了,這點可以用前面介紹的外邊距合併來解釋。

      ps:我第一次自己寫這個三列佈局的時候,html 是這樣寫的

      <body>
        <p class="left float">left</p>
        <p class="mid">自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素自适应宽度元素</p>
        <p class="right float">right</p>
      </body>
      登入後複製

      如上把中間自適應的元素寫在中間,其實這樣比較符合邏輯,但如果這樣寫是行不通的,右邊的元素會掉下來,因為.mid 元素是區塊級元素,會佔滿整行,.left 不會掉下來是因為它本來就是脫離文文檔流的浮動元素。

    清除浮動

    在子元素上清除

    這裡我只寫不會產生無意義標籤的方法。

    • 浮動元素後面若有兄弟元素,則可以在給它的兄弟元素加上<a href="http://www.php.cn/wiki/917.html" target="_blank">clear</a>屬性。
      如文字環繞那部分程式碼,給 .normal 加上 clear<a href="http://www.php.cn/wiki/974.html" target="_blank">:left</a>clear:bothclear 的具體用法這裡不做過多贅述。

    • 為要清除浮動的元素加上偽類別或偽元素。

      .float::after {
        content: '';
        display: block;
        visiability: hidden;
        height: 0;
        clear: both;
      }
      登入後複製

      關於 ::after 的使用可以看 MDN 的文檔。

    在父元素上清除,即BFC

    BFC(Block Formatting Context),即區塊級格式上下文,它的官方解釋是:

    浮動、絕對定位元素(<a href="http://www.php.cn/wiki/902.html" target="_blank">position</a>absolutefixed)、行內區塊元素display:inline-block表格儲存格display:table-cell、表格標題display:table-caption 以及<a href="http://www.php.cn/wiki/923.html" target="_blank">overflow</a> 屬性值不為visible 的元素(除了該值被傳播到視點<a href="http://www.php.cn/css/css-rwd-viewport.html" target="_blank">viewport</a> # 的情況)將建立一個新的區塊級格式化上下文。

    總結來說它要滿足下列條件之一:

    1. float 不為none

    2. #position 不為<a href="http://www.php.cn/wiki/188.html" target="_blank">static</a>relative

    3. displaytable-celltable-captioninline-block flexinline-flex

    4. #overflow 不為visible

    只要給父元素加上以上任一屬性滿足條件,也就是給父元素加上BFC 就能清除子元素的浮動。

    以上是CSS浮動與浮動清除(BFC)簡單教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱門文章

    <🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    北端:融合系統,解釋
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
    3 週前 By 尊渡假赌尊渡假赌尊渡假赌

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    熱門話題

    Java教學
    1664
    14
    CakePHP 教程
    1423
    52
    Laravel 教程
    1321
    25
    PHP教程
    1269
    29
    C# 教程
    1249
    24
    vue中怎麼用bootstrap vue中怎麼用bootstrap Apr 07, 2025 pm 11:33 PM

    在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

    了解HTML,CSS和JavaScript:初學者指南 了解HTML,CSS和JavaScript:初學者指南 Apr 12, 2025 am 12:02 AM

    WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

    HTML,CSS和JavaScript的角色:核心職責 HTML,CSS和JavaScript的角色:核心職責 Apr 08, 2025 pm 07:05 PM

    HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

    bootstrap怎麼寫分割線 bootstrap怎麼寫分割線 Apr 07, 2025 pm 03:12 PM

    創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

    bootstrap怎麼插入圖片 bootstrap怎麼插入圖片 Apr 07, 2025 pm 03:30 PM

    在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

    bootstrap怎麼設置框架 bootstrap怎麼設置框架 Apr 07, 2025 pm 03:27 PM

    要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

    bootstrap按鈕怎麼用 bootstrap按鈕怎麼用 Apr 07, 2025 pm 03:09 PM

    如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

    bootstrap怎麼調整大小 bootstrap怎麼調整大小 Apr 07, 2025 pm 03:18 PM

    要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-

    See all articles