CSS 浮动(float)详解

看了很多大牛总结的float特性,现在进行简单的整理和总结。

1.浮动的特性:

①浮动没有脱离标准文档流,但脱离了文档流。

注:此处的标准文档流=文本流+文档流,文本流相对于文字段落来讲,文档流相对于盒子模型来讲。也就是说浮动元素会脱离文档流导致浮动后面的元素会无视浮动元素,但文本流不会无视浮动元素,会围绕着浮动元素周围,类似于文字四周环绕的效果。

参考文章:关于float是否脱离标准文档流详细解析

浮动能带来灵活的布局,但同时也带来了父元素高度塌陷的缺点(即浮动元素高度不影响其父级元素的高度,也就是说,其父级元素高度小于浮动元素,整块的高度依旧是按照父级元素来的,浮动元素高度撑不起父级元素),所以清除浮动是十分必要的。

2.清除浮动的方法(即解决浮动的父级元素高度塌陷的问题)

 

解决浮动引起的高度塌陷,分别是:

   使用clear:both,常见的clearfix:(优点避免了改变html结构,直接用css解决)

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

.clearfix{*+height:1%;}

用法:在浮动元素的父元素上添加class=”demo clearfix”

优化方案:

.demo:after,.demo2:after{content:".";display:block;height:0;clear:both;visibility:hidden}

.demo,.demo2{*+height:1%;}

另一种浮动闭合的方式:

.clearfix{overflow:auto;_height:1%}

还有:

.clearfix{overflow:hidden;_zoom:1;}

参考文章:解读浮动闭合最佳方案:clearfix

   触发浮动元素父元素的BFC(块状格式上下文,为解决盒子与盒子之间,内容不相互影响的概念);

BFC:

float: left | right;

position: fixed | absolute

display: inline-block | table-cell | table-caption | flex | inline-flex;

overflow: hidden | scroll | auto;

注:table可以生成BFC,table会默认生成一个匿名的table-cell。

关于BFC的相关文章:学习BFCBFC原理

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值