示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
   | <style>     .parent {         border: 5px solid #fcc;         width: 300px;     }
      .child {         border: 5px solid #f66;         width: 100px;         height: 100px;         float: left;     }
      .clearfix:after {         content: '';         visibility: hidden;         clear: both;         display: block;     }
      .clearfix {         *zoom: 1;     } </style>
  <body>     <div class="parent clearfix">         <div class="child"></div>         <div class="child"></div>     </div> </body>
   | 
父元素设置具体高度
给父元素设置具体高度后,即可清除浮动。但是这样相当于把高度写死了,很不灵活。
父元素结束标签之前插入空元素
1 2 3 4 5 6 7 8 9 10 11 12 13
   | <style>     .clear {         clear: both;     } </style>
  <body>     <div class="parent">         <div class="child"></div>         <div class="child"></div>         <div class="clear"></div>     </div> </body>
   | 
给父元素添加伪元素(推荐)
1 2 3 4 5 6 7 8 9 10 11
   | .clearfix:after {     content: '';     visibility: hidden;     clear: both;     display: block; }
 
  .clearfix {     *zoom: 1; }
  | 
clear 属性只有块级元素才有效的,而 ::after 等伪元素默认都是内联水平,这就是借助伪元素清除浮动影响时需要设置 display 为 block 的原因
利用 BFC
1 2 3
   | .parent {     overflow: hidden; }
  | 
父元素浮动或者绝对定位
浮动
1 2 3
   | .parent {     float: left; }
  | 
绝对定位
1 2 3
   | .parent {     position: absolute; }
  | 
参考资料:
https://juejin.cn/post/6844903504545316877
https://www.kancloud.cn/pillys/qianduan/2049767