text-indent首选2em单位,因其等于当前字体大小两倍,随字号、缩放、dpi自适应,精准匹配中文“空两字”习惯;禁用padding-left或margin-left,避免整段偏移破坏对齐。

text-indent 的单位怎么选
缩进距离不是随便填个数字就行,单位选错会导致缩进在不同字号、缩放或设备下“失效”。2em 是最稳妥的选择:它等于当前字体大小的两倍,用户放大字体、开启系统缩放、切换高 DPI 屏幕时,缩进仍保持“两个汉字宽”的视觉效果。32px 看似直观,但字号调到 24px 后,32px 缩进就显得过宽;2% 更危险——窄屏下 2% 可能只有 6px,连一个汉字都塞不下。
为什么不能用 margin-left 或 padding-left
这两个属性会让整段文字左移,不是首行缩进,而是整段偏移。后果很具体:
-
text-align: justify会彻底失效,两端对齐变成一坨乱麻 - 段落内有
display: inline-block子元素(比如图标、按钮)时,margin-left可能触发新的 BFC,导致首行缩进完全不渲染 - 响应式断点切换时,固定像素的
padding-left容易让文字挤出容器,尤其在小屏上
首段要不要缩进?怎么重置
中文排版惯例是正文首段不缩进,但 p { text-indent: 2em } 会无差别作用于所有段落。必须手动干预:
- 用
p:first-of-type { text-indent: 0; margin-top: 0; }清掉首段缩进和顶部空白 - 如果首段在某个容器内(比如
.article),优先写.article > p:first-child,避免被其他嵌套p干扰 - 别只清
text-indent,漏掉margin-top会导致首段上方多出一截空白,和标题贴太近
悬挂缩进怎么实现
需要“首行顶格、其余行缩进”(比如参考文献列表),得用负值 text-indent 配合 padding-left:
-
text-indent: -2em把首行往左拉出 2em -
padding-left: 2em把整段内容往右推 2em,防止首行文字跑出容器左边界 - 二者叠加,视觉上就是首行不动,其余行缩进 2em
- 注意:这个组合只对块级元素有效,且
padding-left值必须 ≥abs(text-indent),否则文字会被裁切
em 的计算结果,而多数人只改了 text-indent 就以为万事大吉。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











