

新闻资讯
技术学院行内元素有盒模型,但受line-height和vertical-align主导,width/height及上下margin无效,padding-top/bottom不增加行高;inline-block可设宽高和完整内外边距,但受vertical-align影响且存在HTML空格间隙。
有,行内元素(inline)**确实有盒模型**,但它不按你熟悉的 width/height + margin/padding 方式工作——它的盒模型被“压缩”进文本流中,受 line-height 和 vertical-align 主导,而不是独立占位。
因为它的尺寸和布局行为被浏览器强制约束在“行框(line box)”里:
width 和 height 设置无效(除非是替换元素,如 、)margin-top/margin-bottom 完全不参与布局计算,不会推开上下元素padding-top/padding-bottom 虽然渲染可见(背景/边框会撑开),但**不增加行高**,容易和下一行文字重叠border 会显示,但可能视觉溢出当前行,也不影响其他行的位置当你需要“保留同行排列 + 又想控制尺寸/垂直间距”,display: inline-block 是最常用解法,但它不是“万能补丁”:
width/height、完整的 padding/margin(包括上下方
向)vertical-align 影响,默认 baseline 对齐,常导致底部留白4px 的空白间隙(不是 margin!)inline-block 元素之间若写成多行 HTML:A\nB就会出现间隙;解决方式是父容器设
font-size: 0,子元素再重置字体大小别只靠眼睛猜,用工具验证真实行为:
padding-top/bottom 是否“悬空”在行框外padding-top: 20px 的 span)拉高* { outline: 1px solid rgba(255,0,0,0.2); } 这比 border 更可靠,不会干扰原有盒模型计算真正容易被忽略的是:行内元素的“高度”本质上不是由自身决定的,而是由它所在的行框决定的;而行框高度 = 该行所有行内盒中「内容区 + 行内盒上下 padding/border + vertical-align 偏移」的最大组合值。改一个 span 的 padding-top,可能悄悄把整行都顶高了。