几种清除浮动的方式

6 篇文章 0 订阅

什么是浮动?

 

特性:1--浮动的元素不会占据标准流的空间,但是会影响标准流中的文本的排版。浮动只有左右浮动。
      2--浮动元素A的位置与上一个元素有关系。如果上一个元素有浮动,则A的顶部与上一个元素顶部对齐,如果没有浮动,则与其底部对齐。
      3--一个父盒子中的子盒子,如果其中一个子级有浮动,则其他子级都需要浮动,才能一行显示。
      4--元素浮动之后,如果没有设置宽高,元素会根据内容的多少来设置内容的大小将会有行内块元素的属性。
      5--元素浮动之后,如果父元素没有设置高度。会造成父元素高度塌陷。
      解决这个问题?
      -----在父元素中加入属性:overflow:hidden;超出的部分进行隐藏

 

 

overflow属性:
   当盒子内的元素超出黑子自身的大小时,内容的显示方式
   visible:内容不会被修剪,会呈现在元素框之外(默认)
   hidden:会被修剪隐藏,可以使用这个属性来清除浮动
   auto:自适应显示滚动条
   scrol:内容会被修剪,会显示滚动条

bfc:
   overflow可以触发元素的bfc,可以让元素具有排版的空间和权限,在bfc内部所有的元素都依据父元素进行排版和布局,所有父元素具有了包裹性,这就是解决高度塌陷问题的原理。
   浮动、定位、overflow、dispaly、table、table-cell都可以触发bfc。

清除浮动:
 --就是让当前元素左右两边都不存在浮动元素的时候,才把元素放在标准流中显示。
 --清除浮动的四种方式:
   1.使用空标记清除浮动,隔墙放。增加标签。
      在浮动标签的后边加一个<div class="clearboth"></div>,不设置宽高然后设置.clearboth{clear:both},然后再将需要的标签放到这个空标签后边即可
   2.使用overflow属性清除浮动。会误伤。
      overflow:hidden;
   3.使用after伪对象清除浮动
   4.使用before after伪对象清除浮动
      clearfix(2,3,4中方式的结合,常用)。
 
.clearfix
   父盒子要把子盒子包裹住,触发bfc同时清除前后浮动。
   .clearfix{
      display:table;<!-- 触发dfc -->

   }
   .clearfix:before,.clearfix:after{
      content:"";
      display:block;
      clear:both;
      height:0;
   }
   在ie6中display:table;不能触发dfc,所以用以下方式进行触发
   .clearfix{
      _zoom:1;
   }

用法:

 

 

 
  1. <div class="top">top</div>

  2. <div class="clearfix">

  3. <div class="left">left</div>

  4. <div class="right">right</div>

  5. </div>

  6. <div class="bottom">bottom</div>

 
  1. .clearfix{

  2. display: table;/* 触发nfc */

  3. }

  4. .clearfix:before,.clearfix:after{

  5. /* 前后加一个空的标签清除浮动 */

  6. content: "";

  7. display: block;

  8. height: 0;

  9. clear: both;

  10. }

  11. .clearfix{

  12. _zoom:1;/* 为了兼容ie6 */

  13. }

--------------------- 本文来自 Tiramisu_C 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/nongweiyilady/article/details/53887681?utm_source=copy

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值