【HTML】- CSS清除浮动

我们通常使用浮动来实现某些元素的布局,但是往往这些元素浮动会影响其他元素的布局,因此会产生副作用。

当元素设置浮动属性后,会对相邻的元素产生影响,相邻的元素特指紧邻其后面的元素。

1.浮动产生的原因:

一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了。

实例:

<div class="box">
    <div class="left"></div>
    <div class="right"></div>
</div>
<div>浮动元素后的元素</div>
<style>
    .box{
        border: 1px solid red;
    }
    .left{
        float: left;
        width: 100px;
        height:300px;
        border: 1px solid dodgerblue;
        margin: 5px;
    }
    .right{
        float: right;
        width: 100px;
        height:300px;
        margin: 5px;
        border: 1px solid forestgreen;
    }
</style>
效果:

原理上里面的两个对象盒子是在红色对象盒子中的,因为里面的两个盒子使用了float浮动布局,导致外面的红字盒子对象不能被撑开。

2.浮动产生的副作用

2.1 背景不能显示
由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景不能
显示。
2.2 边框不能撑开
如上图中,如果父级设置了CSS边框属性(css border),由于子级里使用了float属性,产生浮动,父级不能被撑开,导致边框不能
随内容而被撑开。
2.3 margin padding设置值不能正确显示
由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。
2.4 使浮动元素紧邻其后的元素表现的如同设置了浮动元素一样,不再换行显示,而是显示在同一行中。 

3.消除浮动的方法

3.1 设置父级元素一个固定的高度

上面的父级元素样式设置

.box{
    border: 1px solid red;
    height: 400px;
}

3.2 clear:both清除浮动

在父级“</div>”结束前加此div引入“class="clear"”样式。这样即可清除浮动。

.box:after{
    content: '';
    height: 0px;
    visibility: hidden;
    clear: both;
    display: block;
}

3.3 父级元素设置overflow:hidden清除浮动

.box{
    border: 1px solid red;
    overflow: hidden;
}
为什么加入overflow:hidden即可清除浮动呢?那是因为overflow:hidden属性相当于是让父级紧贴内容,
这样即可紧贴其对象内内容(包括使用float的div盒子),从而实现了清除浮动。

清除浮动的效果



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值