清除浮动-css

本文介绍了在网页布局中清除浮动的重要性及三种常见方法:尾元素清除、空标签清除和伪元素清除。探讨了每种方法的工作原理及其优缺点。

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

什么情况下需要清除浮动?

父元素没有高度(指的是不设值,height:0不算)的情况下,里面的子元素都设置了浮动。

只要浮动在一个有高度的盒子中,那么这个浮动就不会影响后面的浮动元素。 
但是网页制作中,高度height很少出现。为什么?因为能被内容撑高!

为什么需要清除浮动?

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


清除浮动的3种办法

1、尾元素清除浮动。给父元素加上clearfix这个类即可

//在类名为clearfix的元素后面加入内容

.clearfix:after{
content:"";
height:0;
line-height:0;
display:block;
clear:both;
visibility:hidden;
}

.clearfix{
 zoom:1;  //因为IE6不支持:after伪类。它的效果和height:1%一样
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2、在浮动元素后面加空标签(设clear:both)

3、给没有设置高度的父元素设置overflow:hidden

一个父亲不能被自己浮动的儿子,撑出高度。但是,只要给父亲加上overflow:hidden; 那么,父亲就能被儿子撑出高了。

优缺点

方式一:使用overflow属性来清除浮动

    .ovh{

      overflow:hidden;

     }

    先找到浮动盒子的父元素,再在父元素中添加一个属性:overflow:hidden,就是清除这个父元素中的子元素浮动对页面的影响.

    注意:一般情况下也不会使用这种方式,因为overflow:hidden有一个特点,离开了这个元素所在的区域以后会被隐藏(overflow:hidden会将超出的部分隐藏起来).

实例代码:

<style>
.clearfix div {
float: left;
margin-left: 10px
}
.clearfix{
overflow: hidden
}
</style>
<body>
<div style="background:black" class="clearfix">
<div style="width:50px;height:50px;background:red">111</div>
<div style="width:80px;height:80px;background:rgb(25, 0, 255)">111</div>
<div style="width:100px;height:100px;background:rgb(0, 255, 136)">111</div>
</div>
</body>

方式二:使用额外标签法

    .clear{

      clear:both;

     }

    在浮动的盒子之下再放一个标签,在这个标签中使用clear:both,来清除浮动对页面的影响.

      a.内部标签:会将这个浮动盒子的父盒子高度重新撑开.

      b.外部标签:会将这个浮动盒子的影响清除,但是不会撑开父盒子.

    注意:一般情况下不会使用这一种方式来清除浮动。因为这种清除浮动的方式会增加页面的标签,造成结构的混乱.

方法三:使用伪元素来清除浮动(after意思:后来,以后)

    .clearfix:after{

      content:"";//设置内容为空

      height:0;//高度为0

      line-height:0;//行高为0

      display:block;//将文本转为块级元素

      visibility:hidden;//将元素隐藏

      clear:both//清除浮动

     }

    .clearfix{

      zoom:1;为了兼容IE

    }

方法四:使用双伪元素清除浮动

    .clearfix:before,.clearfix:after {

                  content: "";

                  display: block;

                  clear: both;

            }

            .clearfix {

                  zoom: 1;

            }

方法三-四实例代码:

<style>
.clearfix div {
float: left;
margin-left: 10px
}
.clearfix::after{
content: "";
display: block;
line-height: 0;
clear: both;
visibility: hidden;
}
.clearfix{zoom: 1}
</style>
<body>
<div style="background:black" class="clearfix">
<div style="width:50px;height:50px;background:red">111</div>
<div style="width:80px;height:80px;background:rgb(25, 0, 255)">111</div>
<div style="width:100px;height:100px;background:rgb(0, 255, 136)">111</div>
</div>
</body>
</html>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值