清除浮动


一、为什么要清除浮动?

浮动元素脱离文档流,不占据空间。浮动元素碰到包含它的边框或者浮动元素的边框停留。

	<div class="outer">
      <div class="box1"></div>
      <div class="box2"></div>
    </div>
      .outer {
        width: 300px;
        border: solid 1px #000;
      }
      .box1 {
        width: 100px;
        height: 60px;
        background: darkkhaki;
      }
      .box2 {
        width: 80px;
        height: 100px;
        background: peachpuff;
      }

在浏览器上样式如下:

在上述css中给子元素box1,box2增加浮动后:

      .box1, .box2{
        float: left;
      }

浏览器上样式如下:

二、浮动引起的问题

  1. 父元素的高度无法被撑开,影响与父元素同级的元素
  2. 与浮动元素同级的非浮动元素会跟随其后
  3. 若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构

三、清除浮动的方法

所有解决方法图示:

1.空标签

在所有浮动标签后面添加一个空标签,定义css属性clear:both。
弊端就是增加了无语义的标签,使HTML结构看起来不够简洁。

	<div class="outer">
      <div class="box1"></div>
      <div class="box2"></div>
      <div class="cl"></div>
    </div>
      .cl{
        clear: both;
      }

2.overfow

给包含浮动元素的父标签添加css属性overflow:auto/hidden; zoom:1;
zoom:1用于兼容IE6

      .outer {
        width: 300px;
        border: solid 1px #000;
        overflow: auto;
        /* overflow: hidden; */
        zoom: 1;
      }

3.after伪标签

该方法只适合于非IE浏览器。
该方法中必须为需要清除浮动元素的伪元素中设置height:0和display:block

      .outer::after{
        content: '';
        height: 0;
        display: block;
        clear: both;
      }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值