css中的BFC和IFC理解

一 什么是 BFC

它是页面中的一块渲染区域,并且有一套渲染规则. 它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。

而 Block Formatting Contexts (BFC,块级格式化上下文),就是 一个块级元素 的渲染显示规则。通俗一点讲,可以把 BFC 理解为一个封闭的大箱子,,容器里面的子元素不会影响到外面的元素,反之也如此。

触发BFC的条件

  • body 根元素;

  • 浮动元素:float 不为none的属性值;

  • 绝对定位元素:position (absolute、fixed)

  • display为: inline-block、table-cells、flex

  • overflow 除了visible以外的值 (hidden、auto、scroll)

二 BFC的特性及应用

  1. <head>

  2. .p {  

  3.  width:200px;  

  4.  height:50px;  

  5.  margin:50px 0;  

  6.  background-color:red;  

  7. }  

  8. </head>

  9. <body>

  10.   <div class="p"></div>  

  11.   <div class="p"></div>  

  12. </body>

垂直方向的距离是由margin决定的,同一个BFC下的相邻的两个box,会发生垂直方向margin重叠,我们需要让他们不属于同一个BFC

2 BFC可以包含浮动的元素(清除浮动)

根据BFC规范中的第4条:计算BFC的高度时,浮动元素也参与计算,那么外部设置BFC的div容器就可以包裹着浮动元素。

3 BFC可以阻止元素被浮动元素覆盖

三 简要介绍IFC

IFC布局规则:

  1. 框会从包含块的顶部开始,一个接一个地水平摆放。

  2. 摆放这些框时,它们在水平方向的 内外边距+边框 所占用的空间都会被考虑; 在垂直方向上,这些框可能会以不同形式来对齐: 水平的margin、padding、border有效,垂直无效。不能指定宽高;

  3. 行框的宽度是 由包含块和存在的浮动来决定; 行框的高度 由行高来决定


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值