← Inline 与 inline-block · 拆解 / inline-block 之间的空白间隙 待审核 5 / 8
gotcha · whitespace

inline-block 之间的空白间隙

把几个 inline-block 分行写在 HTML 里,渲染出来它们之间总有约 4px 的间隙,margin: 0 也消不掉。原因与 01 · 行框与行内框讲的机制同源:它们是行内级内容,而源码里两个标签之间的换行 / 空格,会被当成一个空白字符渲染——就像单词之间的那个空格一样,占掉一个空格的宽度。

1 · 缝从哪来:它就是「一个空格」

HTML 解析时,标签之间的换行 + 缩进会被折叠成一个空白字符。因为 inline-block 是行内级的,这个空白字符就像句子里的空格一样被真的渲染出来,宽度 ≈ 当前 font-size 下一个空格的宽(常见 ~4px,随字体 / 字号变)。块级元素之间没有这问题,因为块级根本不在一行里排。

2 · 怎么去掉(各有取舍)