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 指当前字体大小的两倍,比固定像素更健壮。
立即学习“前端免费学习笔记(深入)”;
doxygen是一款好用的程序员辅助工具,它可以让程序添加批添代码更加简单轻松,兼容C++、 C、Java、 Objective-C、Python等主流编程语言,小编提供的doxygen中文手册包含了基本介绍、语法技巧以及进阶技巧等内容,可以让你快速上手操作,有需要的欢迎下载。 基本介绍 Doxygen已经支持生成ANSI编码的chm目录文件(index.hhc)!Doxygen通常是用作生成英文文档的,生成中文文档需要修改输入和输出的码制,这样可以改变解析方式,生成中文文档。但是,你必须意识 到,Dox
- 只影响第一行,后续行不受干扰
- 负值可用于悬挂缩进(如参考文献格式),例如:
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,可能不够明显
不要用 或多层 做缩进
保留空白符,但会禁用自动换行、改变字体和行高,本质是代码/格式化文本容器,不是排版工具。
嵌套多个 并设 margin-left 更是反模式:结构膨胀、语义丢失、缩进值难以复用。
-
内容若含用户输入,可能引发 XSS 风险(未转义的 、&)
-
margin-left 缩进会影响整个块级元素,不只是首行,易破坏栅格对齐
- 当需要多级缩进(如树形列表),应使用
padding-left + 语义化列表(
/
)而非硬编码层级
真正麻烦的是混合场景:比如富文本编辑器导出的 HTML 同时含内联样式、 和 text-indent,这时候缩进逻辑会互相覆盖。上线前得用浏览器开发者工具逐层检查 computed styles。
保留空白符,但会禁用自动换行、改变字体和行高,本质是代码/格式化文本容器,不是排版工具。
嵌套多个 margin-left 更是反模式:结构膨胀、语义丢失、缩进值难以复用。
真正麻烦的是混合场景:比如富文本编辑器导出的 HTML 同时含内联样式、 内容若含用户输入,可能引发 XSS 风险(未转义的 、
&)margin-left 缩进会影响整个块级元素,不只是首行,易破坏栅格对齐padding-left + 语义化列表(/)而非硬编码层级 和 text-indent,这时候缩进逻辑会互相覆盖。上线前得用浏览器开发者工具逐层检查 computed styles。








