2019獨角獸企業重金招聘Python工程師標準>>>
描述:
在文檔流中,父元素的高度默認是被子元素撐開的,也就是子元素多高,父元素就多高。但是當子元素設置浮動之后,子元素會完全脫離文檔流,此時將會導致子元素無法撐起父元素的高度,導致父元素的高度塌陷。
1.給父元素加高度;問題:當子盒子的高度大于父盒子時,會溢出;
2父元素觸發BFC
根據W3C標準,在頁面中元素都有一個隱藏的屬性叫Block Formatting Context,簡稱BFC,該屬性可以設置打開或者關閉,默認是關閉的。
當開啟BFC后,元素將會具有以下特性:
- 元素的垂直外邊距不會和子元素重疊
- 開啟BFC的元素不會被浮動元素所覆蓋
- 開啟BFC的元素可以包含浮動元素
觸發BFC(給父級加),滿足下面任意一種即可:
Float的值不是none;帶來的問題:父級元素的父級元素寬度為0)
position的值不是static/relative;(帶來的問題:父級元素的父級元素寬度為0)
display的值為:inline-block;table-cell;
overflow的值不是visible;(帶來的問題:IE6下不支持)
3.(最佳方案)給父級元素加class=Clearfix(固定的名字)
.clearfix::after{
????content: '';
????display: block;
????clear: both;
}
4.添加一個高度和寬度為0的div,作為子元素,并且清除浮動(可以兼容各種瀏覽器,但是會多一個無用的標簽)
?