css 解决方案-清除浮动

本文介绍了在CSS布局中清除浮动的几种方法,包括clearfix方法、overflow方法及inline-block方法,并解释了为什么需要清除浮动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两种情况
清除浮动包括清除子元素的浮动和清除上级元素的浮动,其中清除上级元素的浮动,只需设置clear为both就可以了,而清除子元素的浮动则可以用空标签法、clearfix方法或overflow方法。因清除上级元素的浮动比较简单,而空标签法清除子元素浮动会增加额外标签,所以在这里主要说clearfix方法、overflow方法及偶然发现的inline-block方法。

为什么要清除浮动

一个块级元素的高度如果没有设置height,那么其高度就是由里面的子元素来撑开的,如果子元素使用浮动,脱离了标准的文档流,那么父元素的高度会将其忽略,你可以使用firebug查看下如果不清除浮动,父元素会出现高度不够,那样如果设置border或者background都得不到正确的解析


HTML code

<ul id="demo1" class="nostyle demo clearfix">
   <li><img alt="img1" src="http://placehold.it/150/ffffff/00c5e3&text=demo"></li>
   <li><img alt="img2" src="http://placehold.it/150/ffffff/00c5e3&text=demo"></li>
   <li><img alt="img3" src="http://placehold.it/150/ffffff/00c5e3&text=demo"></li>
</ul>


清除子元素浮动clearfix方法
demo 1

/*简洁版*/
.clearfix:before, .clearfix:after {
    content:"";
    display:table;
}
.clearfix:after{
    clear:both;
    overflow:hidden;
}
.clearfix{
    zoom:1;
}
/* 经典版 */
.clearfix:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
}
* html .clearfix             { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

注:clearfix的方法主要就是在浮动元素的父元素上加上一个clearfix class,然后这个父元素的框就会包括所有的浮动子元素。



清除子元素浮动overflow方法
demo 2

/* overflow:auto */
#demo2{
    overflow:auto;*zoom:1;
}
/*或 overflow:hidden */
#demo2{
    overflow:hidden;*zoom:1;
}

注:这种方法主要是对父元素设置css,所以不需要加个class,下面的inline-block方法相同,只需设置父元素的css即可


清除子元素浮动inline-block方法
demo 3

#demo3{
    display:inline-block;*display:inline;*zoom:1;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值