前端清除浮动的方法

1 篇文章 0 订阅
1 篇文章 0 订阅

为什么需要清除浮动

如果一个父盒子中有一个子盒子,并且父盒子没有设置高,子盒子在父盒子中进行了浮动,那么将来父盒子的高度为0。由于父盒子的高度为0,下面的元素会自动补位,所以这个时候要进行浮动的清除。

方式1:额外标签法

  1. 在父元素内容的最后添加一个块级元素
  2. 给添加的块级元素设置clear:both;
<style>
   .head {
       width: 600px;
       margin: 0 auto;
       background-color: #FFCCCC;
   }
   .left {
       float: left;
       height: 300px;
       width: 200px;
       background-color: #FFFF99;
   }
   .right {
       float: right;
       height: 300px;
       width: 300px;
       background-color: #CCCCFF;
   }
   .box {
       height: 200px;
       width: 800px;
       margin: 0 auto;
       background-color: #CCCCCC;
   }
   .clearfix{
       clear: both;
   }
</style>
<body>
<div class="head">
   <div class="left"></div>
   <div class="right"></div>
   <!--清除新标签-->
   <div class="clearfix"></div>
</div>
<div class="box"></div>
</body>
</html>

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

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

.head {
       width: 600px;
       margin: 0 auto;
       background-color: #FFCCCC;
       overflow: hidden;
   }

方式3:单伪元素清除法

  1. 定义伪元素,定义属性clear: both
/*使用伪元素代替了html中的额外标签*/
   .clearfix::after {
       content: "";
       display: block;
       clear: both;
   }
  1. 直接给父元素class中添加该伪元素
<div class="head clearfix">
   <div class="left"></div>
   <div class="right"></div>
</div>
<div class="box"></div>

方式4:双伪元素清除法

  1. 定义双伪元素
/*使用伪元素代替了html中的额外标签,clearfix::before解决外边距塌陷问题*/
   .clearfix::before, .clearfix::after {
       content: "";
       display: table;
   }
   .clearfix::after {
       clear: both;
   }
  1. 直接给父元素class中添加该伪元素
<div class="head clearfix">
   <div class="left"></div>
   <div class="right"></div>
</div>
<div class="box"></div>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值