资讯专栏INFORMATION COLUMN

BFC与IFC

wpw / 2401人阅读

摘要:行内级元素与行内元素行内级元素行内级元素是那些不会为自身内容形成新的块,而让内容分布在多行中的元素。行内元素行内元素仅仅是属性值为的元素。置换和非置换元素置换元素浏览器根据元素的标签和属性,来决定元素的具体显示内容。

参考链接:
https://segmentfault.com/a/11...
https://juejin.im/post/59b73d...
面试之CSS篇 - 边距重叠与BFC

基础知识 块级元素与块元素 块级元素

块级元素是那些视觉上会被格式化成块状的元素,通俗一点来说就是那些会换新行的元素。例例如:display属性为block, list-item, table, flex, grid。

块元素

块元素是 display 属性值为 block 的元素,它应该是 块级元素 的一个子集。

行内级元素与行内元素 行内级元素

行内级元素是那些不会为自身内容形成新的块,而让内容分布在多行中的元素。
例如:display属性为inline, inline-table, inline-block, inline-flex, inline-grid。

行内元素

行内元素仅仅是display属性值为inline的元素。

置换和非置换元素 置换元素

浏览器根据元素的标签和属性,来决定元素的具体显示内容。
常见的置换元素有这些:img,input,textarea,select,button等

置换元素宽度定义

若宽高的计算值都为 auto 且元素有固有宽度,则 width 的使用值为该固有宽度

若宽度的计算值为 auto 且元素有固有宽度,则 width 的使用值为该固有宽度

若宽度的计算值为 auto 且高度有 非auto 的计算值,并且元素有固有宽高比,则 width的使用值为“高度使用值 * 固有宽高比”

比如img 当只定义了其高度值时,其宽度将会根据固有宽高比进行等比设置

除此之外,当 width 的计算值为 auto 时,则宽度的使用值为 300px

比如iframe, canvas#####置换元素高度定义
置换元素高度定义

若宽高的计算值都为 auto 且元素有固有高度,则height的使用值为该固有高度

若高度的计算值为 auto 且元素有固有高度,则height的使用值为该固有高度

若高度的计算值为 auto 且宽度有 非auto 的计算值,并且元素有固有宽高比,则 height 的使用值为:宽度使用值/固有宽高比

若高度的计算值为 auto 且上述条件完全不符,则height的使用值不能大于150px,且宽度不能大于长方形高度的2倍

非置换元素

浏览器中的大多数元素都是不可置换元素,即其内容直接展示给浏览器。

非置换元素,宽度设置是不适用
BFC

BFC全称”Block Formatting Context”, 中文为“块级格式化上下文”。

BFC就是页面上的一个隔离的渲染区域,容器里面的子元素不会在布局上影响到外面的元素,反之也是如此
触发BFC

根元素

float的值不为none

overflow的值为auto,scroll或hidden

display的值为table-cell、table-caption、inline-block、flex 或 inline-flex

position的值不为relative和static

BFC布局规则

内部的盒子会在垂直方向,一个个地放置

盒子垂直方向的距离由margin决定,属于同一个BFC的两个相邻Box的上下margin会发生重叠

每个元素的左边,与包含的盒子的左边相接触,即使存在浮动也是如此

BFC的区域不会与float重叠

BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之也如此

计算BFC的高度时,浮动元素也参与计算

IFC

IFC(Inline Formatting Contexts)直译为"内联格式化上下文"。

IFC布局规则

在一个IFC中,从父级元素的顶部开始,盒子一个接一个横向排列

一个line box总是足够高对于包含在它内的所有盒子。然后,它也许比包含在它内最高的盒子高

当盒子的高度比包含它的line box的高度低,在line box内的盒子的垂直对齐线通过"vertical align"属性决定

当在一行中行内级盒子的总宽度比包含他们的line box的宽度小,他们的在line box中的水平放置位置由"text align"属性决定

当一个行内盒子超过了line box的宽度,则它被分割成几个盒子并且这些盒子被分配成几个横穿过的line boxs

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/114407.html

相关文章

  • css布局的各种FC简单介绍:BFCIFC,GFC,FFC

    摘要:完整的说法是属于同一个的俩个相邻的的会发生重叠,与方向无关。元素会位于与与之间,使得宽度缩短。简单的说,有了之后,布局不再局限于单个维度了。 什么是FC? Formatting Context,格式化上下文,指页面中一个渲染区域,拥有一套渲染规则,它决定了其子元素如何定位,以及与其他元素的相互关系和作用。 BFC 什么是BFC Block Formatting Context,块级格式...

    mindwind 评论0 收藏0
  • css布局的各种FC简单介绍:BFCIFC,GFC,FFC

    摘要:完整的说法是属于同一个的俩个相邻的的会发生重叠,与方向无关。元素会位于与与之间,使得宽度缩短。简单的说,有了之后,布局不再局限于单个维度了。 什么是FC? Formatting Context,格式化上下文,指页面中一个渲染区域,拥有一套渲染规则,它决定了其子元素如何定位,以及与其他元素的相互关系和作用。 BFC 什么是BFC Block Formatting Context,块级格式...

    付永刚 评论0 收藏0
  • CSS里的BFCIFC的用法

    摘要:行宽的高度为包含框的高度,高度为行框中最高元素的高度。行框的宽度容纳不下子元素时,子元素会换到下一行显示,并且会产生新的行框。 一、BFC Block Formatting Contexts (BFC,块级格式化上下文),就是 一个块级元素 的渲染显示规则。 (可以把 BFC 理解为一个封闭的大箱子,容器里面的子元素不会影响到外面的元素)。 1、BFC的布局规则例如以下: ①.内...

    ityouknow 评论0 收藏0
  • CSS里的BFCIFC的用法

    摘要:行宽的高度为包含框的高度,高度为行框中最高元素的高度。行框的宽度容纳不下子元素时,子元素会换到下一行显示,并且会产生新的行框。 一、BFC Block Formatting Contexts (BFC,块级格式化上下文),就是 一个块级元素 的渲染显示规则。 (可以把 BFC 理解为一个封闭的大箱子,容器里面的子元素不会影响到外面的元素)。 1、BFC的布局规则例如以下: ①.内...

    BaronZhang 评论0 收藏0

发表评论

0条评论

wpw

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<