清除浮动的几种方式

三栏布局,都使用了浮动,导致父元素高度塌陷,效果如下:

 代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello</title>
  </head>
  <style>
    .parent {
      border: 3px #ffaaa7 solid;
    }
    .child {
      height: 300px;
    }
    .child:nth-child(1) {
      width: 200px;
      float: left;
      background-color: #98ddca;
    }
    .child:nth-child(2) {
      background-color:#d5ecc2;
      width: calc(100% - 400px);
      float: left;
    }
    .child:nth-child(3) {
      background-color:#ffd3b4;
      width: 200px;
      float: right;
    }
  </style>
  <body>
    <div class="parent">
      <div class="child">1</div>
      <div class="child">2</div>
      <div class="child">3</div>
    </div>
  </body>
</html>

清除浮动后实现效果:

一、 伪元素

相当于加入了一个块级元素,并设置了clear:both

 .parent:after {
      content: '';
      display: block;
      clear: both;
  }

二、clear

可以在想要清除浮动的元素上加clear,在本例子中,由于三个child元素都是浮动,所以要在最后边加个空的div,然后加上clear:both即可

 <div class="parent">
      <div class="child">1</div>
      <div class="child">2</div>
      <div class="child">3</div>
      <div style="clear:both"></div>
 </div>

三、父级div定义 overflow:hidden

父元素设置overflow:hidden(除了"visible"之外的任何有效值)后会使父元素形成一个BFC,而BFC的高是包含内部的浮动元素的高的

.parent {
      border: 3px #ffaaa7 solid;
      overflow: hidden;
 }

其实所有能使父元素产生BFC的都能解决该,但是有些会造成额外的问题。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值