← Inline 与 inline-block · 拆解 / inline / inline-block / block 对照 + 修法总结 待审核 6 / 8
cheatsheet · 实战

inline / inline-block / block 对照 + 修法总结

本系列各页分析的现象,根源都在 display 的三种取值上。这页把一个元素在 inline / inline-block / block 之间切换,给它加 width / height / margin / padding,实时量它的真实尺寸,看哪些属性生效、哪些被忽略。

1 · 三种身份的行为对照(高亮列 = 当前选中)

下面把目标元素在三种 display 之间切换,并叠加 width / heightmarginpadding,舞台实测它的真实尺寸,对照表则高亮当前所选那一列的行为。

最后一行解释:inline 不是一个完整盒子,而是一截可拆的文字流。一个 <a>(默认 inline)横跨两行时,会被切成几个框分到各行——规范(CSS 2.2 §9.4.2)规定 「当一个 inline box 被拆开时,拆开处的 margin、border、padding 不产生视觉效果,所以你会看到它的边框 / 背景在换行断点处「断开」、行末行首不收边。而 inline-block整体盒子,从不拆行(放不下就整个换到下一行)——这正是它和 inline 在横向上的根本区别,和垂直方向的区别(width/height 生效、撑行框)互为表里。

2 · 全系列实战修法速查

总结:inline / inline-block 的所有反直觉现象,本质都是它们处在 IFC 里、默认按 baseline 排进 line box。遇到无法解释的垂直偏移时,先确认三件事:它的 baseline 在哪vertical-align 是什么这一行的 line-height / strut 有多高——答案基本就出来了。