CSS Spec : block-level box, block 容器盒和 block 盒

标签 css

我正在阅读 CSS Spec 2.1并发现难以区分的概念:

Except for table boxes, which are described in a later chapter, and replaced elements, a block-level box is also a block container box. A block container box either contains only block-level boxes or establishes an inline formatting context and thus contains only inline-level boxes. Not all block container boxes are block-level boxes: non-replaced inline blocks and non-replaced table cells are block containers but not block-level boxes. Block-level boxes that are also block containers are called block boxes.

我可以这样解释上面的描述吗?:

enter image description here

最佳答案

你的解释是正确的。

这里有一些额外的细节:

  • 表格框不是 block 容器的原因是它建立的是表格布局,而不是 block 布局。内容进入单元格元素而不是表格元素,这就是为什么单元格框是 block 容器而不是表格框本身。

  • 替换元素不包含任何其他内容,因此不能是 block 容器。

  • block 盒和行内 block 之间的唯一区别是前者是 block 级的,而后者是行内级的。因此显示值分别为 display: blockdisplay: inline-block。由于两者都是 block 容器,因此它们的内容格式没有区别。

请注意,替换元素和表格框可以是行内级或 block 级。内联表和内联替换元素只是从您引用的部分中排除,因为该部分仅适用于 block 级框;您会在第 9 节的其他地方或 10 节中找到对它们的引用和 17分别。

此外,即使 block 容器盒只能包含 block 级盒或行内级盒,您仍然可以在同一个 block 容器盒中混合使用这两种盒;在内部,它只是通过 anonymous block boxes 将 block 级和行内级框分开。 .

关于CSS Spec : block-level box, block 容器盒和 block 盒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30883857/

相关文章:

html - FF & Chrome : Text bounding box difference in Windows/Linux

css - 如何风格化圆形Fontawesome图标背景?

css - 指定元素间间距的最佳 CSS 方法(可能使用 flexbox 等)

jquery - 仅在单击父级 li 时切换 ul 子菜单的显示

javascript - 查找元素高度,包括边距

html - 正确对齐 Div - HTML/CSS

javascript - 在鼠标悬停时展开/折叠 float div 而不会掉到下一行

jquery - h1 元素的动画背景

jquery - 我的导航有点滑稽 : setting a width won't work and it jumps

html - 通过将第一个列表项固定在 html 中,将滚动应用于第二个列表项