清浮动

清浮动:清浮动是用在浮动元素的父级身上,清浮动并不是不让浮动元素浮动,而是清除浮动元素脱离页面流之后,对父级的影响(浮动元素浮动后不再占用父级的空间,使得父级高度为0)

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>元素的浮动</title>
    <style>
    .outer{
      border: 5px solid #000;
      width: 1000px;
    }
    .con1{
      width: 400px;
      height: 150px;
      background: red;
    }
    .con2{
      width: 400px;
      height: 100px;
      background-color: pink;
      float: left;
    }
    .con3{
      width: 400px;
      height: 180px;
      background-color: #8dff5f;
      float: left;
    }
    </style>
<html>
<body>
<div class="outer">
  <div class="box1"></div>
  <div class="box2"></div>
  <div class="box3"></div>
</div>
</body>
</html>

清浮动的五种方法:

1.给父级元素添加overflow属性,实际是开启BFC(开启BFC有五种方法,详细见BFC文章),常用overflow:hidden,但是BFC代码都有自己的其他效果(例如overflow:hidden的实际效果是超出隐藏),在不影响代码的情况下可以使用BFC清浮动。

.outer{
  border: 5px solid #000;
  width: 1000px;
  overflow: hidden;
}
  1. 在所有浮动元素的最下边书写一个空标签(块级标签),并给这个空标签一个样式:style="clear: both;",在结构中多书写一行标签,有时候会影响代码
<div class="outer">
  <div class="box1"></div>
  <div class="box2"></div>
  <div class="box3"></div>
  <div style="clear: both;"></div>
</div>

3.在所有浮动元素最下边书写一个br,给br标签书写一个属性:clear="all"

<div class="outer">
  <div class="box1"></div>
  <div class="box2"></div>
  <div class="box3"></div>
  <br clear="all"></br>
</div>

4.给父级元素设置一个高度,但基本不用

.outer{
  border: 5px solid #000;
  width: 1000px;
  height: 330px;
}

5.给父级书写after伪元素 替代直接在浮动元素下书写空标签的方法(方法2)
一般可以直接命名一个清浮动的类名(clearFix),将来如果需要清浮动,直接把类名给浮动元素的父元素即可。

.clearFix:after{
  /*伪元素没有content属性是不生效的*/
  content:"\200B";/*空字符*/
  height:0;/*高度为0不占用空间*/
  display: block;/*清浮动的标签是一个块元素*/
  clear:both;
}

因为低版本的IE不支持伪元素,所以要在低版本IE中给父元素开启haslayout(其实就是我们现代浏览器的BFC)。

.clearFix{
  /*  *是css hack,设置zoom有一个作用是开启haslayout  */
  *zoom: 1;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。