text-indent: 2em比20px更可靠,因它随字号等比缩放,适配系统缩放与高dpi屏;line-height应设无单位值(如1.6)控行距,段间距必须用margin控制,三者职责分明不可混用。

直接用 text-indent 控制首行缩进,用 line-height 调行距,两者互不干扰、各管各的——混用 margin 或 padding 反而会让视觉错位、响应式失效。
为什么 text-indent: 2em 比 20px 更可靠
中文排版要的是“两个汉字宽”的缩进,不是固定像素。2em 表示当前 font-size 的两倍,字号放大时缩进同步变宽;而 20px 在系统缩放 150% 或高 DPI 屏幕下会显得太窄,甚至缩进消失。
- 浏览器默认
font-size是 16px,2em ≈ 32px,刚好接近两个中文字宽 - 用户调大系统字体或用 zoom 缩放页面时,
2em仍保持比例,20px就卡死不动 -
2ch理论上更准(1ch ≈ 字符 “0” 宽度),但 IE 不支持,且多数中文字体里 1ch 远小于一个汉字
line-height 设置行距的常见陷阱
line-height 控制的是**段落内各行之间的垂直间距**,不是段与段之间的空隙。设成 1.6(无单位)最稳妥,它基于当前字体大小计算,不会引发继承混乱。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
- 别写
line-height: 24px:父元素字号变化后,子元素行高可能撑开或挤压 - 别指望靠
line-height“凑”段间距:它只影响段内,相邻段落之间还是得靠margin - 若段落含
<img>或<strong></strong>等内联元素,line-height仍作用于整行盒(line box),不是单个字符
首段不缩进 + 段间距统一怎么写
出版惯例是首段顶格、不缩进,且段与段之间留白要一致。关键不是加样式,而是**重置首段的缩进和上边距**,再统一其他段落的上下 margin。
-
p { text-indent: 2em; margin: 1.2em 0; }—— 全局基础样式 -
p:first-of-type { text-indent: 0; margin-top: 0; }—— 首段去缩进、去顶边距 -
p:last-of-type { margin-bottom: 0; }—— 末段底边距归零,避免容器底部多出空白 - 如果段落嵌在
flex或grid容器里,text-indent可能“看起来没反应”,优先给p加align-self: flex-start,或换用padding-left: 2em替代(此时已非语义缩进,而是视觉对齐)
真正容易被忽略的是:缩进单位必须和当前元素的 font-size 对齐,而不是父容器或根元素;text-indent 生效的前提是元素为块级且未被 white-space: nowrap 或浮动布局破坏行盒结构——调试时直接看开发者工具的 Computed 值,比猜更准。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










