关于清除浮动和闭合浮动的方式和原理

应学长的要求,正在对清浮动进行整理和理解。整理如下:


浮动的初衷是为了让文字(等行内元素)环绕在浮动元素的周围。

浮动带来的副作用(浮动让元素脱离文档流,使浮动元素在文档流里不占位置,即后边的元素(准确地说是块级元素)忽视浮动元素的存在):

  ①子元素浮动带来父元素高度塌陷;

  ②块状元素,会钻进浮动元素的下面,被浮动元素所覆盖

 

清除浮动的方式

    在浮动元素末尾插入空标签clear:both

有两种插入方法:1)<div style=clear:both></div>

2) <br clear=all/>

原理:当添加了最后一个冗余元素(未设置clear:both)时;父元素和此冗余元素的高度都为0,并且三个浮动的元素都浮在了它们的上方盖住了它们(可以把它们看成PS中的图层)。现在,给这个冗余元素添加clear:both(clear属性规定元素的哪一侧都不允许其他元素浮动),它便要躲开这三个浮动元素,因此,一直往下跑,直到没有被浮动元素盖住才停下来。而父元素看到这个子元素跑开了,自然想要包裹住它。

缺点:页面中添加很多必要的又无意义的冗余元素,不符合语义化。

闭合浮动的方式

BFCie8+)、hasLayoutie67

    原理BFC是一个独立的渲染区域,只有块级Box参与,规定了内部的块级Box如何布局,里面的子元素不会在布局上影响外面的元素,即是浮动元素与其他元素的交互限定区域。

    浮动定位和清除浮动时只会应用于同一个BFC内的元素。浮动不会影响其它BFC中元素的布局,而清除浮动只能清除同一BFC中在它前面的元素的浮动。

  ②采用伪元素,给父元素追加clearfix,使用:afterIE8+

     

  (两种都可以,后面的更好)

  ③给父元素设置height(不建议使用)

  ④父元素设置浮动(不建议使用)

  ⑤父元素设置overflow:hidden/auto(会触发BFC

  ⑥父元素设置display:table(会触发BFC

  ⑦给子元素设置display:inline-block(触发BFC

  . . . . . .


(关于清除浮动和闭合浮动的差别,请见前辈文http://www.iyunlu.com/view/css-xhtml/55.html那些年我们一起清除过的浮动)


可以感受到,BFC在闭合浮动里是起很重要的作用的。


关于BFC我会写在另一片文里,请转移!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值