搜尋
首頁web前端css教學什麼是浮動以及浮動的清除方法

什麼是浮動以及浮動的清除方法

Sep 11, 2018 pm 05:44 PM
clearcss偽元素浮動

本章要跟大家介紹什麼是浮動以及浮動的清除方法。有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

一、浮動

說浮動就必須提及文件流,HTML當中的元素依照從左到右,從上到下的順序進行排列稱為文檔流,也就是正常排列。

而浮動是什麼呢?浮動會讓元素脫離文檔流,假如A元素浮動了,原本排在該元素之後的元素發現A元素不在這個文檔流了,就會無視它往上接到A元素前面的元素之後(PS:但是文字並不會無視它,還會環繞A元素,也就是A元素沒有脫離文字流。

什麼是浮動以及浮動的清除方法

#而如果使用position的絕對定位會連文字流也脫離文檔流。

什麼是浮動以及浮動的清除方法

浮動的好處當然是佈局了,例如透過浮動來形成三列佈局,文字環繞等等。但是浮動也有一個問題,那就是會導致高度的塌陷,就像上面的圖片顯示,父元素的高度塌陷了,並沒有將浮動的子元素包裹進去,這樣子就會造成佈局上的錯誤。

##二、BFC

什麼是BFC?BFC是Block Formatting Context的縮寫,也就是區塊層級格式化上下文,建立BFC有以下情況:

float的值不為none。

overflow的值不為visible。

display的值為table-cell, table-caption, inline-block中的任何一個。

position的值不為relative和static。

BFC的特性就是包裹浮動的元素。按照我的理解,當你創建BFC之後元素就會把裡面的東西視為自己的東西,包括浮動元素,然後創建一個私有領域給包裹進來。此外BFC還有還有以下特性。

1.讓原本會疊加的上下外邊距疊加無效。將想要邊距失效的兩個盒子分別放入一個父盒子,然後為父盒子創建BFC。

什麼是浮動以及浮動的清除方法什麼是浮動以及浮動的清除方法

2.創建BFC的元素將不會圍繞浮動元素,圖中文字用p標籤包裹並創建BFC,右上角浮動元素,可以看見文字並沒有環繞浮動元素。

什麼是浮動以及浮動的清除方法

# 三、清除浮動的方法

##清除浮動方法大致有兩類,一類是clear:both | left | right ,另一類則是創建BFC,細分又可以分為多種。#####1.透過在浮動元素末尾添加空的標籤例如並設定樣式為clear:both | left | right ,其他標籤br等亦可。###
<div class="parent">    
      <div class="child"></div>
    <div style="clear: both;"></div>
</div>
###優點:簡單。######缺點:增加了額外的標籤,並且很顯然這並不符合語義化。######  *使用br標籤和其自身的html屬性,br 有 clear=all | left | right | none;的屬性。 ###
<div class="parent">    
    <div class="child"></div>
    <br clear=&#39;all&#39;>
</div>
###優點:簡單程式碼量少,比空標籤語意化稍好。 ######缺點:增加了額外的標籤,而且很顯然這並不符合語意化。 ######2.使用::after偽元素(萬金油方法)######ps:由於IE6-7不支援:after,使用`zoom:1觸發hasLayout。其實是透過 content 在元素的後面產生了內容為空的區塊級元素######程式碼如下:###
.clearfix:after {    
    content:"";    
    display:block;    
    height:0;    
    visibility:hidden;//这一条可以省略,证明请看原文精益求精部分
    clear:both; 
}.clearfix {
    zoom:1;
}
###優點:結構和語意化完全正確,程式碼量居中。 ######缺點:重複使用不當會造成程式碼量增加。 ######偽元素還有一種寫法:###
// 用display:table 是为了避免外边距margin重叠导致的margin塌陷, 内部元素默认会成为 table-cell 单元格的形式
.clearfix:before, .clearfix:after {    content:"";    display:table;}
.clearfix:after{    clear:both;    overflow:hidden;}
.clearfix{ zoom:1; }

3.父元素设置 overflow:hidden,(PS:在IE6中还需要触发 hasLayout ,例如 zoom:1)

优点:不存在结构和语义化问题,代码量极少。

缺点:由于hidden的原因,当内容增多时候容易造成不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素,还会导致中键失效(鼠标中键)。

4.父元素设置 overflow:auto 属性

优点:同上

缺点:多个嵌套后,会有bug,详情看原文。

5.父元素也浮动

优点:代码少

缺点:总不能一直浮动到body吧。

6.父元素设置display:table

优点:结构语义化完全正确,代码量极少。

缺点:会造成盒模型的改变。

以上是什麼是浮動以及浮動的清除方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
兩個圖像和一個API:我們重新著色產品所需的一切兩個圖像和一個API:我們重新著色產品所需的一切Apr 15, 2025 am 11:27 AM

我最近找到了一種動態更新任何產品圖像的顏色的解決方案。因此,只有一種產品之一,我們可以以不同的方式對其進行著色以顯示

每周平台新聞:第三方代碼,被動混合內容,連接最慢的國家的影響每周平台新聞:第三方代碼,被動混合內容,連接最慢的國家的影響Apr 15, 2025 am 11:19 AM

在本週的綜述中,燈塔在第三方腳本上闡明了燈光,不安全的資源將在安全站點上被阻止,許多國家連接速度

託管您自己的非JavaScript分析的選項託管您自己的非JavaScript分析的選項Apr 15, 2025 am 11:09 AM

有很多分析平台可幫助您跟踪網站上的訪問者和使用數據。也許最著名的是Google Analytics(廣泛使用)

它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭Apr 15, 2025 am 11:01 AM

該文檔負責人可能不是網站上最迷人的部分,但是其中所處的內容對於您的網站的成功也一樣重要

JavaScript中的Super()是什麼?JavaScript中的Super()是什麼?Apr 15, 2025 am 10:59 AM

當您看到一些稱為super()的JavaScript時,在子類中,您會使用super()調用其父母的構造函數和超級。訪問它

比較不同類型的本機JavaScript彈出窗口比較不同類型的本機JavaScript彈出窗口Apr 15, 2025 am 10:48 AM

JavaScript具有各種內置彈出API,它們顯示用於用戶交互的特殊UI。著名:

為什麼可訪問的網站如此難以構建?為什麼可訪問的網站如此難以構建?Apr 15, 2025 am 10:45 AM

前幾天,我與一些前端人們聊天,講述了為什麼這麼多公司努力創建可訪問的網站。為什麼可訪問的網站如此艱難

'隱藏”屬性顯然很弱'隱藏”屬性顯然很弱Apr 15, 2025 am 10:43 AM

有一個HTML屬性,它可以正是您認為應該做的:

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器