inline-block 之间的空白间隙
把几个 inline-block 分行写在 HTML 里,渲染出来它们之间总有约 4px 的间隙,margin: 0 也消不掉。原因与 01 · 行框与行内框讲的机制同源:它们是行内级内容,而源码里两个标签之间的换行 / 空格,会被当成一个空白字符渲染——就像单词之间的那个空格一样,占掉一个空格的宽度。
1 · 缝从哪来:它就是「一个空格」
HTML 解析时,标签之间的换行 + 缩进会被折叠成一个空白字符。因为 inline-block 是行内级的,这个空白字符就像句子里的空格一样被真的渲染出来,宽度 ≈ 当前 font-size 下一个空格的宽(常见 ~4px,随字体 /
字号变)。块级元素之间没有这问题,因为块级根本不在一行里排。