今天遇到了乙個情況,給子元素指定浮動之後,父元素的背景顏色就消失了。原來是這個樣子的,
然後我希望裡面的li元素變為浮動。
於是
.head-li
我發現父元素變形了。
原來之前父元素的高度是被子元素撐開的,現在子元素變成浮動了,父元素就沒法被撐開了。
1、 把父元素也改為浮動但是 這樣會影響到布局。
2、給父元素乙個固定的高度這樣只適用於子元素高度已知且固定。
3、給父元素加乙個
overflow: hidden
當子元素浮動時,父元素會增加高度去包裹子元素,這個高度是自適應子元素的高度。
4、在子元素後面加乙個div
清除浮動
5、after 偽類 對父元素使用 消除浮動
#head-ul:after
第五種最好!!!
解決子元素的浮動導致的父元素高度坍塌的問題
參考 當父元素中的子元素設定了float屬性時,可認為子元素就跳出了父元素的束縛而位於新的一層,此時父元素內部沒有元素,其高度就變為0。要解決這個問題,人為給父元素設定高度是不現實的,因為一般父元素的高度是由子元素決定的,為此我們可以從父子元素兩個角度出發,用兩種思路解決這個問題。1.子元素角度 新...
CSS子元素浮動導致父元素高度塌陷問題
根據w3c標準,在頁面中元素都有乙個隱含的屬性叫做 block formatting context,簡稱 bfc,該屬性可以設定開啟或者關閉,預設是關閉的。當開啟元素的bfc以後,元素會具有以下特性 1.父元素的垂直外邊距不會和子元素重疊 2.開啟 bfc 的元素不會被浮動元素覆蓋 3.開啟 bf...
父元素浮動子元素會浮動嗎 13浮動
1 浮動的定義 float 屬性定義元素在哪個方向浮動。以往這個屬性總應用於影象,使文字圍繞在影象周圍,不過在 css 中,任何元素都可以浮動。浮動元素會生成乙個塊級框,而不論它本身是何種元素。css 的 float 浮動 使元素脫離文件流,按照指定的方向 左或右發生移動 直到它的外邊緣碰到包含框或...