精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

css中什么是父元素高度塌陷-創新互聯

這篇文章將為大家詳細講解有關css中什么是父元素高度塌陷,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創新互聯長期為1000多家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為雙塔企業提供專業的網站設計制作、網站制作,雙塔網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發。

首先得回答什么是父元素高度塌陷:

在文檔流中,父元素的高度默認是被子元素撐開的,也就是子元素多高,父元素就多高。但是當子元素設置浮動之后,子元素會完全脫離文檔流,此時將會導致子元素無法撐起父元素的高度,導致父元素的高度塌陷。

一下是舉例說明:

  

css中什么是父元素高度塌陷

清除浮動詳解

清除浮動主要是為了解決由于浮動元素脫離文流導致的元素重疊或者父元素高度坍塌的問題,而這兩個問題分別對應了需要清除浮動的兩種種情況:清除前面兄弟元素浮動和閉合子元素浮動(解決父元素高度坍塌)。

清除前面兄弟元素浮動

清除前面兄弟元素浮動很簡單,只需要在不想受到浮動元素影響的元素上使用 clear:both 即可, HTML & CSS 代碼如下:

我是左浮動元素

我是右浮動元素

我不受浮動元素的影響

.fl {
    float: left;
}
.fr {
    float: right;
}
.cb {
    clear: both;
}

在 CSS2 以前,clear 的原理為自動增加元素的上外邊距(margin-top)值,使之最后落在浮動元素的下面。在 CSS2.1 中引入了一個清除區域(clearance)——在元素上外邊距之上增加的額外間距,使之最后落在浮動元素的下面。所以如果需要設置浮動元素與 clear 元素的間距,得設置浮動的元素的 margin-bottom,而不是 clear 元素的 margin-top。

demo 可見:clear 清除浮動

閉合子元素浮動

我們知道,在計算頁面排版的時候,如果沒有設置父元素的高度,那么該父元素的高度是由他的子元素高度撐開的。但是如果子元素是設置了浮動,脫離了文檔流,那么父元素計算高度的時候就會忽略該子元素,甚至當所有子元素都是浮動的時候,就會出現父元素高度為 0 的情況,這就是所謂的父元素高度坍塌問題。為了能讓父元素正確包裹子元素的高度,不發生坍塌,我們需要閉合子元素的浮動。

一般我們有兩種辦法可以用來閉合子元素浮動:

  • 給最后一個元素設置 clear: both

  • 給父元素新建一個 BFC(塊格式化上下文)

clear:both

由于我們最后一個元素使用 clear:both,所以該元素就能不受浮動元素影響出現在父元素的最底部,而父元素計算高度的時候需要考慮到這個正常元素的位置,所以高度自然包裹到了最底部,也就沒有了坍塌。

對于這個方法,以前我們是利用新增一個空元素(

等)來實現的,如下:

.box {
    float: left;
}
.clear-box {
    clear: both;
}

雖然這種辦法比較直觀,但是不是很優雅,因為增加了一個無用的空白標簽,比較冗余而且不方便后期維護(一般不太建議使用該辦法)。所以后期有了通過父元素的偽元素(::after)實現的著名 clearfix 方法,代碼如下:

.clearfix::after {
    content:"";
    display:table;
    clear: both;
}

上面方法給父元素增加一個專門用于處理閉合子元素浮動的 clearfix 類名,該類使用 ::after 偽元素類選擇器增加一個內容為空的結構來清除浮動,可能你們比較疑惑的是為什么要設置 display:table 屬性,這其實涉及到一個比較復雜的進化過程,具體可以參考資料——clearfix浮動進化史

新建 BFC

該方法的原理是:父元素在新建一個 BFC 時,其高度計算時會把浮動子元素的包進來。

下面我們以實例為證:如下圖我們的圖片為浮動,父元素 article 的高度就出現了坍塌(沒有包括圖片),而根元素 HTML (默認情況下我們的根元素 HTML 就是一個 BFC)的高度則包括了圖片的高度。

css中什么是父元素高度塌陷

css中什么是父元素高度塌陷

既然新建一個 BFC 可以解決父元素高度坍陷問題,那就好辦了,下面這些都可以創建一個 BFC :

  • 根元素或其它包含它的元素

  • 浮動 (元素的 float 不是 none)

  • 絕對定位的元素 (元素具有 position 為 absolute 或 fixed)

  • 內聯塊 inline-blocks (元素具有 display: inline-block)

  • 表格單元格 (元素具有 display: table-cell,HTML表格單元格默認屬性)

  • 表格標題 (元素具有 display: table-caption, HTML表格標題默認屬性)

  • 塊元素具有overflow ,且值不是 visible

  • display: flow-root

雖然有這么多方法可用,可我們常用的就是 overflow: hidden,代碼如下:

.container {
    overflow: hidden;
}
.box {
    float: left;
}

關于css中什么是父元素高度塌陷就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


分享標題:css中什么是父元素高度塌陷-創新互聯
本文地址:http://m.jcarcd.cn/article/cecoji.html
主站蜘蛛池模板: 激情视频一区二区三 | 精品一线在线 | 午夜视频体内 | 人成在线v网站 | 国产欧美日本精品 | 强奷乱码中文字幕 | 欧美性精品h | 美日韩在线视频 | 国产v亚洲v天堂在 | 国产在线观看 | 91国高清视频 | 日韩a∨在线观看 | 午夜福利区 | 丝袜美腿精 | 国产日产欧产美韩 | 精品国产一区二区三 | 日韩a√在线观看 | 日比网站在线观 | www.网站黄 | 青草青草久热精 | 国产中文字幕永久 | 乱子伦国| 激情文学小说区另 | 成人免费黄 | 97高清国语自产拍 | 日韩免费观看 | 国产精在线 | 国产精品亚洲αv | 日韩系列第一页 | 国产国语一级 | 成人免费va视频 | 91电影院 | 亚洲无码在线免费视频 | 日本精品大乳一区 | 国产日韩精品a | 九九精品视频亚州 | 国产精品女人一区 | 国产精品国产 | 91视频福利精品 | 国产熟睡| 日韩成人B影院 |