清除浮动的五种方法

200 阅读1分钟

如果子元素浮动,此时子元素不能撑开标准流的块级父元素

原因:因为子元素浮动后,脱离标准流不占位置

目的:需要父元素有高度,清除浮动给网页布局带来的影响

方法一:直接设置父元素的高度

缺点:有部分网页不能给固定高度(不推荐)

方法2:额外标签法

step1: 在父元素的内容最后添加一个块级元素(跟子元素同级)

step2: 给该块级元素设置clear:both

缺点: 会让html结构变得复杂(不推荐)

方法3: 单伪元素清除法(京东)

.clearfix::after {
      content: '';
      display: block;
      clear: both;
    }
 /* 兼容IE6,IE7 */
    .clearfix {
      *zoom: 1;
    }

方法4: 双伪元素清除法(小米)

.clearfix::before,
    .clearfix::after {
      content: '';
      display: table;
    }

    .clearfix::after {
      clear: both;
    }

方法5:给父元素设置overflow:hidden

另附: 页面布局代码

<body>
  <div class="box clearfix">
    <div></div>
    <div></div>
    <div></div>
  </div>
</body>