什么是Non-Replaced Inline Blocks?CSS 2.1规范术语疑问
解析CSS 2.1中「non-replaced inline blocks」的含义
先把规范里的背景信息摆出来:
《Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification》第9章「Visual formatting model」指出:并非所有块容器盒都是块级盒:non-replaced inline blocks和non-replaced table cells是块容器盒但不属于块级盒。
问题核心
你提到的疑问很明确:规范第9、10章里没再提及「non-replaced inline blocks」,想搞清楚这个块盒对应的到底是什么元素?
侧边备注
- 这里绝对不是指non-replaced inline elements(就是咱们最常用的普通内联元素,比如
<span>这类) - 也不是指设置了
display:inline-block的元素——这类元素属于inline-level boxes,和咱们讨论的完全不是一个范畴
补充说明
- 从规范的引用内容可以直接推断:non-replaced inline blocks属于block container boxes
- 先明确一个基础概念:内联级元素指的是源文档中不会形成新内容块的元素,内容会在行内分布(比如段落里的强调文本、内联图片都属于这类)。
display属性的inline、inline-table、inline-block值会让元素成为内联级元素,生成参与内联格式化上下文的inline-level boxes - 既然non-replaced inline blocks是block container boxes,而设置
display:inline-block的元素是inline-level boxes(不属于block-level boxes,自然也不是block container boxes),逻辑上就能得出:non-replaced inline blocks根本不是来自设置display:inline-block的元素 - 说白了就是:这里的「inline blocks」和咱们常说的
display:inline-block属性生成的元素完全不是一回事
内容的提问来源于stack exchange,提问作者Magnus
相关产品推荐
相关产品推荐

