通八洲科技

css line height 怎么设置更合理_文本垂直间距优化方法

日期:2025-12-31 00:00 / 作者:P粉602998670
line-height 设为无单位数值最稳妥,如1.5,因其相对于当前font-size倍数,可继承缩放;带单位值易导致行高僵化,小字号需增大倍数(如12px用1.7),并影响行盒高度与vertical-align。

line-height 设为无单位数值最稳妥

line-height 控制文本行距时,直接写数字(如 1.5)比带单位(pxemrem)更可靠。带单位的值会强制继承固定高度,子元素字体大小变化后容易撑开或重叠;无单位数值是相对于当前元素 font-size 的倍数,天然可继承、可缩放。

常见错误:在全局 body 里写 line-height: 24px,结果 h1 字号变大后行高没跟着变,文字贴顶或留白过大。

小字号文本需适当提高 line-height 倍数

字号越小,人眼对行间空隙越敏感。12px 文字若还用 1.2 行高,视觉上会显得拥挤;16px 以上可用 1.4–1.5,而 12–14px 建议调到 1.6–1.8

这不是玄学——小字号下字体渲染的 hinting 和 subpixel 显示会让基线间距感知变窄,必须靠增大 line-height 补偿可读性。

line-height 影响内联元素垂直对齐,别只盯文字本身

line-height 不仅决定行内文字间距,还直接控制该行盒(line box)的高度,进而影响 vertical-align 行为。比如图片和文字混排时,若容器未设 line-height,浏览器按默认(通常约 1.1–1.2)生成行盒,图片底部常悬空。

典型现象:文字旁放一个 16px 高图标,看起来总比文字低一截——其实是图标按基线对齐,而行盒高度不足,留空被压到了下方。

使用 calc() 动态微调时注意浏览器兼容性

想让行高随字号线性增长但保留最小余量,可用 calc(),例如:line-height: calc(1em + 0.2rem)。这在现代项目中可行,但要注意:

body {
  font-size: 16px;
  line-height: calc(1em + 0.25rem); /* ≈ 1.25 倍,且随根字号缩放 */
}

真正难的不是设多少,而是意识到 line-height 是行盒的「高度控制器」,不是单纯的「文字间距开关」。它牵扯字体渲染、内联布局、响应式缩放,改一处常连带三处异常——调完记得看图文混排、小字号段落、以及缩放至 125% 后是否依然自然。