文章排版要求每段开头空两格,手敲两个全角空格的做法早就过时了——一行行对不齐,复制粘贴还容易丢。正确做法是给段落加一条属性:text-indent: 2em;,一行代码解决,网页文章、后台富文本、公众号排版都适用。
css首行缩进2字符代码怎么写
对所有段落生效就这么写:
p { text-indent: 2em; }2em 里的 em 是相对单位,1em 等于当前元素的字号大小,2em 就是两个字的宽度。字号 16px 时缩进 32px,字号调到 18px 缩进自动跟着变,所以中文排版一般用 em 而不是写死像素。
只缩进某一类段落
全站段落都缩进的情况不多,常见做法是给正文区域单独限定:
.article p { text-indent: 2em; }选择器按实际页面结构调整。反过来想要悬挂缩进——首行突出、后面行对齐——把值写成负数再配左边距:text-indent: -2em; 加 margin-left: 2em;,排参考文献条目时会用到。
容易踩的坑
- 缩进只作用于块级元素的第一行,对 span 这类行内元素无效,要套在 p 或 div 上
- 数字、日期开头的段落也会被缩进,个别段落不想缩,单独写 text-indent: 0; 覆盖
- 用 px 写死的话,换字体或改字号就露馅,尽量用 em
- 列表 li 也会跟着缩进,做带序号的目录时记得单独关掉
text-indent 有继承性,外层容器设置了,内部块级元素会跟着缩进,看到莫名缩进先查父元素。它和 padding 也不是一回事:缩进只动首行,内边距动整个盒子,别混着调。
全角空格方案在网页上还有个毛病:响应式布局下字号会变,空格宽度不变,移动端看起来不是缩多就是缩少,两种效果都不对。
实际写页面记一条就够:中文正文段落加 text-indent: 2em;,这条css首行缩进2字符代码所有主流浏览器都支持,不需要任何兼容前缀,放心用。如果模板还要求两端对齐,配上 text-align: justify; 中文段落排版就更整齐了。