首頁  >  文章  >  web前端  >  css為什麼會出現清除浮動的問題

css為什麼會出現清除浮動的問題

王林
王林原創
2020-11-11 09:43:371968瀏覽

css出現清除浮動的問題的原因:在標準流程下面,父元素沒有設定高度屬性,且父元素中的子元素是浮動,由於浮動元素不再佔用原始文件流的位置,浮動元素的高度不會計算在父元素的高度中,也就是呈現塌陷的狀態。

css為什麼會出現清除浮動的問題

本教學操作環境:windows10系統、css3,本文適用於所有品牌的電腦。

一、為什麼會出現清除浮動的問題?

(學習影片推薦:java影片教學

如果在標準串流下面一個父元素沒有設定高度屬性,那麼它的高度就會被子元素的高度撐開,即自適應。但是如果這個父元素中的子元素是浮動的話,由於浮動元素不再佔用原文檔流的位置,浮動元素的高度不會計算在父元素的高度中,父元素的高度會為0,即呈現塌陷的狀態。我們為了解決這類問題,提出了清除浮動。

二、怎麼用CSS清除浮動?

1、直接為父元素添加高度

但是在浮動元素高度不確定的時候不適用

2、直接利用clear:both

直接在父元素的最底下加上一個區塊級標籤(p,div等),然後賦予它clear:both 來清除浮動。

但是這樣會產生大量沒有用的空元素,浪費資源,不是最優解

3、利用BFC:

(1)什麼是BFC

直譯為"區塊級格式化上下文"。它是一個獨立的渲染區域,是一個獨立的佈局環境,其中的元素佈局是不受外界的影響,並且在一個BFC中,塊盒與行盒(行盒由一行中所有的內聯元素所組成)都會垂直的沿著其父元素的邊框排列。 BFC就是頁面上的一個隔離的獨立容器,容器裡面的子元素不會影響到外面的元素。反之也如此。

(2)解決方案一:

為父元素樣式加上overflow:hidden(只要不是visible),加入這個語句後,會建立一個BFC,會把浮動元素困在BFC中,不讓其脫離文檔流,會先計算浮動元素的高度,再hidden隱藏,父元素獲得高度,就會撐開

(3)解決方案二:

給父元素加入浮動float:right(只要不是none),加入這個語句也會創建一個BFC,原理相同,但是有時候我們不需要讓父元素浮動,與我們的需求相違背

4、利用偽類別

透過父元素的::after偽元素來產生浮動元素的兄弟元素,然後兄弟元素使用clear:both方法。

相關推薦:CSS教學

以上是css為什麼會出現清除浮動的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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