We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Block Formatting Context(块格式化上下文) 是 W3C CSS 2.1 规范中的一个概念,在 CSS3 中被修改为 flow root。 格式化表明了在这个环境中,元素处于此环境中应当被初始化。元素如果创建了 BFC,则元素被 BFC 的特性约束。也就是 BFC 提供了一个环境,HTML 元素在这个环境中按照一定的渲染规则进行布局。一个环境中的元素不会影响到其他环境中的布局。
Block Formatting Context(块格式化上下文)
W3C CSS 2.1
flow root
BFC
overflow
visible
float
none
position
absolute
fixed
display
inline-block
flex
inline-flex
grid
inline-grid
column-count
column-width
auto
column-span
all
table-cell
table-caption
table
table-row
table-row-group
table-header-group
table-footer-group
inline-table
flow-root
contain
layout
content
strict
margin
IE 浏览器中不支持 BFC 标准,但 IE 中有 Layout。Layout 和 BFC 基本等价,为了处理 IE 的兼容性,在需要触发 BFC 时,我们除了需要用上面的 CSS 属性来触发 BFC,还需要针对 IE 浏览器使用 zoom: 1; 来触发 IE 浏览器的 Layout。
Layout
zoom: 1;
当块容器盒(block container box)不包括任何块级盒(block-level boxes)时,就会创建一个行内格式化上下文(IFC)。
注:在 IFC 的环境中,是不能存在块级元素的,如果将块级元素插入到 IFC 中,那么此 IFC 将会被破坏掉变成 BFC,而块级元素前的元素或文本和块级元素后的元素或文本将会各自自动产生一个匿名块盒其包围。
The text was updated successfully, but these errors were encountered:
zh-rocco
No branches or pull requests
目录
BFC
Block Formatting Context(块格式化上下文)
是W3C CSS 2.1
规范中的一个概念,在 CSS3 中被修改为flow root
。格式化表明了在这个环境中,元素处于此环境中应当被初始化。元素如果创建了
BFC
,则元素被BFC
的特性约束。也就是BFC
提供了一个环境,HTML 元素在这个环境中按照一定的渲染规则进行布局。一个环境中的元素不会影响到其他环境中的布局。创建 BFC
overflow
值不为visible
的块元素float
不是none
)position
为absolute
或fixed
)display
为inline-block
)display
为flex
或inline-flex
元素的直接子元素)display
为grid
或inline-grid
元素的直接子元素)column-count
或column-width
不为auto
,包括column-count
为 1)column-span
为all
的元素始终会创建一个新的 BFC,即使该元素没有包裹在一个多列容器中(标准变更,Chrome bug)display
为table-cell
,HTML 表格单元格默认为该值)display
为table-caption
,HTML 表格标题默认为该值)display
为table
、table-row
、table-row-group
、table-header-group
、table-footer-group
(分别是 HTML table、row、tbody、thead、tfoot 的默认属性)或inline-table
)display
值为flow-root
的元素contain
值为layout
、content
或strict
的元素BFC 的规则
BFC
环境内的盒子会在垂直方向,一个接一个地放置margin
决定。属于同一个BFC
的两个相邻盒子的margin
会发生重叠BFC
就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素BFC
的高度时,浮动元素也参与计算兼容 IE
IE 浏览器中不支持
BFC
标准,但 IE 中有Layout
。Layout
和BFC
基本等价,为了处理 IE 的兼容性,在需要触发BFC
时,我们除了需要用上面的 CSS 属性来触发BFC
,还需要针对 IE 浏览器使用zoom: 1;
来触发 IE 浏览器的Layout
。IFC
当块容器盒(block container box)不包括任何块级盒(block-level boxes)时,就会创建一个行内格式化上下文(IFC)。
IFC 的规则
注:在 IFC 的环境中,是不能存在块级元素的,如果将块级元素插入到 IFC 中,那么此 IFC 将会被破坏掉变成 BFC,而块级元素前的元素或文本和块级元素后的元素或文本将会各自自动产生一个匿名块盒其包围。
参考
The text was updated successfully, but these errors were encountered: