清除浮动的几种方法

在清除浮动之前我们需要了解为什么要清除浮动

浮动的定义:非ie浏览器下,容器不设高度且子元素浮动时,容器布局不能被内容撑开,此时内容会溢出到容器外面而影响布局,这种现象被称为浮动

而清除浮动主要是为了解决,父元素因为子级元素浮动引起的内部高度为0的问题,即高度塌陷

下面就是在子元素都添加了浮动后,引起父元素的高度塌陷:

<div class="father">
        <div class="chrild1">chrild1</div>
        <div class="chrild2">chrild2</div>
        <div class="chrild3">chrild3</div>
</div>
<style>
        .father{
            width: 500px;
            border: 2px solid rgb(240, 9, 9);
        }
        .chrild1{
            width: 100px;
            height: 100px;
            background-color: aqua;
            float: left;
        }
        .chrild2{
            width: 200px;
            height: 100px;
            background-color: chartreuse;
            float: left;
        }
        .chrild3{
            width: 400px;
            height: 100px;
            background-color: rgb(231, 17, 156);
            float: left;
        }
    </style>

 接下来进入正题介绍清除浮动的方法

1.给父级元素定义height属性

缺点: 需要手动添加高度,如何后面的高度发生变化,还要再次修改高度,给后期的维护带来麻烦。

.father{
            width: 500px;
            border: 2px solid rgb(240, 9, 9);
            height: 600px;
        }

 

 2.最后一个浮动元素之后添加一个空的div标签,并添加clear:both样式

clear:both的作用是不允许周围有浮动现象

缺点:结构化比较差,对于比较复杂的页面就显得结构非常的乱。

.chrild4{
            clear: both;
        }



<div class="father">
        <div class="chrild1">chrild1</div>
        <div class="chrild2">chrild2</div>
        <div class="chrild3">chrild3</div>
        <div class="chrild4"></div>
    </div>

 

 3.触发BFC,在父元素中添加overflow

缺点:内容增多的时候容易造成不会自动换行导致内容被隐藏掉,无法显示要溢出的元素。

.father{
            width: 500px;
            border: 2px solid rgb(240, 9, 9);
            overflow: hidden;
        }

 

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

利用after伪元素定义一个clearfix类,浮动元素的父级元素调用此类可以实现清除浮动的效果

.clearfix::after {
        content: "";
        display: table;
        height: 0;
        clear:both;
        visibility: hidden;
}
<div class="father clearfix">
        <div class="chrild1">chrild1</div>
        <div class="chrild2">chrild2</div>
        <div class="chrild3">chrild3</div>
        <div class="chrild4"></div>
</div>

 

5.使用后before和after双伪元素清除浮动(较推荐)

.clearfix:after,.clearfix:before{
                   content: "";
                   display: table;
                   clear: both;
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时雨.`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值