text-indent 是真正可靠的首行缩进方案,css 的 text-indent 属性专为段落首行缩进设计,兼容所有现代浏览器,支持 em、rem 等响应式单位,典型写法为 p { text-indent: 2em; }。

用 实现单字符缩进,但别滥用
html 里没有“段落首行缩进”这种原生语义标签, 是最直接的视觉占位符。它能强制插入一个不换行的空格,在纯静态文本中快速起效。
常见错误是连写多个 来模拟两字缩进,比如: ——这在响应式页面里容易错位,且无法被屏幕阅读器合理解析。
- 只在极简 HTML 片段(如邮件模板、后台日志展示)中临时使用
- 避免超过 2 个
连用,否则可访问性下降 - 注意:复制粘贴时
可能被编辑器过滤或转义成普通空格
text-indent 是真正可靠的首行缩进方案
CSS 的 text-indent 属性专为段落首行缩进设计,兼容所有现代浏览器,且支持响应式单位(如 em、rem)。
典型写法:p { text-indent: 2em; }。这里 2em 指当前字体大小的两倍,比固定像素更健壮。
立即学习“前端免费学习笔记(深入)”;
- 只影响第一行,后续行不受干扰
- 负值可用于悬挂缩进(如参考文献格式),例如:
text-indent: -1.5em; - 注意:如果段落设置了
display: inline或Float,text-indent会失效
用
或自定义 class 区分语义与样式
如果缩进是为了表达引用、强调或层级关系,优先用语义化标签而非纯样式。例如引文用
,再配合 CSS 调整缩进和边框。
更灵活的做法是定义 class:
…
,然后统一控制:.indent { text-indent: 2em; margin-left: 0; }。
- 避免在 HTML 中混写
style="text-indent: 2em;",不利于维护和主题切换 - 如果项目用了 CSS 预处理器(如 sass),可用变量统一管理缩进值
- 移动端需测试
text-indent在小屏下的实际像素表现,2em在 12px 字体下仅 24px,可能不够明显
不要用
或多层