清除浮动详解

浮动的语法:float:left/right;

浮动float的原本设计了作用初衷是为了实现文字环绕效果

浮动产生负作用:

1、背景不能显示

2、边框不能撑开父元素

3、margin padding设置值不能正确显示

浮动之后会使父元素内的子元素漂浮在父元素上方,造成父元素边框重叠。所以需要清除浮动来使子元素撑开父元素。

简单来说浮动是因为使用了float:left或float:right或两者都是会产生的浮动。

什么时候使用清除浮动呢?当父元素没有设置宽度或者高度的时,又需要子元素撑开父元素的时候使用清除浮动。

清除浮动的方式

1.clear:both清除浮动

优点方便使用,缺点是会多加HTML空标签

   <div class="container"> 
2         <div class="left">left浮动</div> 
3         <div class="right">right浮动</div>
4         <div class="clear"></div>
5     </div>


 .left{float:left;width:200px;height:100px;border: 1px solid red;}
 .right{float:right;width:196px;height:100px;border: 1px solid red;background: blue;}  /*边框能撑开*/     

 .clear{clear:both;}

2.使用after伪元素清除浮动(推荐使用)

是目前用的最多的一种清除浮动的方法之一

缺点:ie6-7不支持伪元素:after,使用zoom:1触发hasLayout.

  .container{
 3             width:400px;
 4             border:5px solid grey;
 5             background: yellow;
 6         }
 7         .left{float:left;width:200px;height:100px;border: 1px solid red;}
 8         .right{float:right;width:196px;height:100px;border: 1px solid red;background: blue;}  

 9         .container:after{
10             content:"";
11             display: block;
12             clear:both;
13         }
14         .container{    *zoom: 1;    /*ie6清除浮动的方式 *号只有IE6-IE7执行,其他浏览器不执行*/ }

3.对父级设置适合CSS高度

4.对父级设置overflow:hidden

优点:简单,无需增加新的标签;

缺点:不能和position配合使用,因为超出的尺寸的会被隐藏;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值