参考链接

前端精选文摘:BFC 神奇背后的原理

清除浮动的四种方式及其原理理解

「百毒不侵(七)」面试官最喜欢问的6种清除浮动和 BFC

MDN: content

(原例代码见末尾)

CSS清除浮动、解决边框塌陷

clearfix: 父级元素增加 ::after 伪元素使用 clear

  • clear 会清除 相同块级格式上下文 (BFC) 中的前置浮动
  1. .box::after {
  2. content: '';
  3. display: block;
  4. clear: both;
  5. }

content 不能为 nonenormal否则不会产生伪元素

display 需要为 block,因为 clear 清除的是相同块级格式上下文 (BFC) 中的前置浮动,BFC 针对的是块级元素。

CSS 清除浮动、解决边框塌陷 - 图1

将父级盒子变成 BFC 盒子

  • 计算 BFC 的高度时,浮动元素也参与计算
  1. .box {
  2. position: absolute | fixed;
  3. /*overflow: hidden | auto | scroll;*/
  4. /*float: left | right;*/
  5. }

原例

HTML

  1. <div class="box">
  2. <div class="left"></div>
  3. <div class="right"></div>
  4. </div>

CSS

  1. .box {
  2. border: 1px solid black;
  3. padding: 5px;
  4. width: 400px;
  5. }
  6. .left {
  7. width: 100px;
  8. height: 100px;
  9. background-color: red;
  10. float: left;
  11. }
  12. .right {
  13. width: 100px;
  14. height: 100px;
  15. background-color: red;
  16. float: right;
  17. }

CSS 清除浮动、解决边框塌陷 - 图2