推荐使用 text-indent: 2em 实现段落首行缩进两个汉字宽,因多数中文字体中 1em ≈ 1个汉字宽度,兼容性好且响应式;慎用 2ch(依赖“0”字宽,在比例字体中不准确);需配合重置 margin、指定中文字体栈及避免 white-space 干扰。

用 text-indent 实现段落首行缩进两个字符,核心是让缩进宽度等于当前字体下两个中文字符的宽度。由于中英文字符宽度不同,直接写 2em 或 2ch 并不总是准确,需结合字体特性合理设置。
推荐写法:使用 2em(最常用且兼容性好)
em 是相对于当前元素 font-size 的相对单位。在绝大多数中文字体(如宋体、微软雅黑、PingFang SC、Noto Sans CJK)中,1em ≈ 1个中文字符的宽度,因此 2em 能稳定实现“两个汉字宽”的缩进。
- 适用于设置了明确
font-size的段落(如font-size: 16px),此时text-indent: 2em相当于缩进 32px - 响应式友好:字体大小随屏幕缩放时,缩进等比变化,保持视觉一致性
- 浏览器兼容性极佳,从 IE6 起就完全支持
慎用写法:避免直接写 2ch
ch 单位以 “0” 字符宽度为基准,在等宽字体中较可靠,但在比例字体(如多数中文字体)中,“0”的宽度 ≠ 汉字宽度,常导致缩进偏小(例如某些字体下 2ch 仅相当于 1.4 个汉字宽)。
- Chrome/Firefox 对
ch的计算逻辑略有差异,实测缩进不统一 - 若强制使用,建议配合
font-family: monospace,但会破坏中文字体排版美感
确保效果稳定的配套设置
仅设 text-indent 不够,还需注意以下三点:
-
清除默认外边距:重置
p { margin: 0; },避免margin-top干扰首行视觉位置 -
指定中文字体栈:如
font-family: "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", sans-serif;,保障em宽度贴近汉字实际尺寸 -
禁用空白折叠干扰:确认未设置
white-space: pre等,防止空格或换行影响首行识别
特殊情况处理:需要精确到像素时
若设计稿严格要求缩进为固定像素(如 32px),且字体不可变,可用 text-indent: 32px。但该方式缺乏弹性:
- 用户调整浏览器字号或启用“强制大字体”时,缩进不会自适应
- 多语言混排(如中英夹杂)时,32px 可能对英文过宽、对日文略窄
- 仅建议用于静态宣传页、PDF 导出等字体锁定场景
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











