清除浮动的几种方法

当元素浮动时,他将不再处于普通文档流中,相当于浮在文档之上,不占据空间,但是会缩短行宽,产生文字环绕的效果。

浮动带来的影响:

1,父级的高度塌陷
2.背景不能显示
3.变框不能撑开
4.margin值不能正确显示
5.产生文字环绕的效果
6.由于脱离文档流,不占位,而后面的元素未脱离文档流导致后面的元素被挡住

下面我将会总结几种清除浮动的方法:
举一个简单的例子,我们找一张图片并让她向左浮动,代码如下:

<style>
    .box{
        background:gray;
    }
    .inner-box{
        float:left;
        width:100px;
        height:200px;
        background-color:red;
    }
</style>
<body>
    <div class="box fix">
       <div class="inner-box"></div>
       <div class="a"></div>
    </div>
</body>

接下来我们为她清除浮动:
*第一种方法:对父级设置适当的高度,只建议高度固定的布局使用。
代码省略;
*第二种方法:在结尾处加空div,利用css提高的clear:both清除浮动,让父级div自动获取到高度。
优点:简单代码少,浏览器支持好
缺点:如果页面浮动很多就会增加很多的空div,产生代码冗余,以前使用,现在不太推荐。
代码如下;

.a{
    clear:both;
  }  

*第三种方式:父级div定义伪类after和zoom,原理与方法二类似,由于after只有IE8以上以及非IE浏览器才支持,zoom是IE专属,所以,为了实现更好的兼容性,需要两者结合使用。
优点:浏览器兼容性好
缺点:代码较多,建议定义公共类以减少css代码。
代码如下:

.fix:after{
    display:block; 
    content:"."; 
    height:0; 
    clear:both; 
    visibility:hidden;
}
.fix{
    zoom:1;
}

*第四种方式:父级定义overflow:hidden,相当于让父级紧贴内容(包括使用float的div的盒子),注意【必须要定义宽度width,zoom:1,同时不能定义height】
优点:简单,代码少,浏览器兼容性好
缺点:不能与position配合使用,因为超出的部分会隐藏

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值