letter-spacing可微调段落内中英文数字间距,但需注意小字号下效果不显、负值易致汉字粘连;应优先用em单位、避免全局设置,对中文实际是码位间加空隙,表格单元格需配合white-space或display才生效,非留白或分词场景不宜使用。

用 letter-spacing 控制段落内字符间距最直接
段落(<p>)里的中文、英文、数字之间的空隙,靠 letter-spacing 就能调。它不改 HTML 结构,只影响渲染效果,适合快速微调排版。
常见错误现象:letter-spacing: 1px 在小字号(如 font-size: 12px)下几乎看不出变化;设成负值(如 -2px)又容易让汉字笔画粘连,尤其在微软雅黑或思源黑体里特别明显。
- 优先用相对单位:
letter-spacing: 0.05em比2px更稳——它随字体大小缩放,响应式页面不会失衡 - 避免全局写法:
p { letter-spacing: 0.1em; }会把所有段落里的数字、标点、链接文字全拉宽,可能破坏表格数据或按钮文案的紧凑感 - 想只作用于某一段?加类名更安全:
<p class="title-text">欢迎来到首页</p>,再配 CSS:.title-text { letter-spacing: 0.15em; }
letter-spacing 对中文和西文的实际影响差异
中文字符本身没有“字距”概念,letter-spacing 实际是在每个 Unicode 码位之间插入固定空白。这意味着:
- 两个汉字之间会加空隙,但“你好”中间加了
0.1em,标点“,”和后面字之间也一样加——如果你只希望拉开汉字,得确保段落里没混入顿号、逗号等 - 英文单词内部(如
hello)每个字母都会被分开,但单词之间(hello world)的空格不受影响——那部分归word-spacing管 - 遇到数字+单位组合(如
100px),letter-spacing会让1、0、0、p、x全部等距拉开,可能造成误读
表格单元格(<td>)里调中文字符间距要小心
<td> 默认有 white-space: normal 和表格布局压缩行为,直接写 letter-spacing 有时会被忽略或表现异常。
立即学习“前端免费学习笔记(深入)”;
- 必须配合
white-space: nowrap或display: inline-block才能稳定生效,否则浏览器可能为了填满单元格而自动收缩间距 - 如果单元格内容是纯中文两字(如“北京”),想视觉上“撑开”,
letter-spacing: 0.2em+text-align: center是最简方案;但若后续要支持窄屏换行,就得换成零宽空格,而不是依赖letter-spacing - 别对整张
<table>设td { letter-spacing: ... }——表头里的“序号”“操作”这类词会被无差别拉宽,列宽计算容易错乱
什么时候不该用 letter-spacing?
它只是视觉调整,不产生真实空格字符,所以:
- 复制粘贴出来的文本不会带额外空格,后端接收或搜索时完全感知不到——别指望靠它“分隔关键词”
- 屏幕阅读器不会读出额外间隙,无障碍体验不受影响,但过度拉大(如
0.3em)会让语音节奏断裂,尤其对长段落 - 如果目标是让“标题”和“副标题”之间有留白,该用
margin-bottom或padding,而不是给标题加letter-spacing去“撑开”
真正需要精确控制每个字位置(比如逐字动画、高亮单字),就得拆成 <span>,这时 letter-spacing 反而成了干扰项——它会在 span 之间也起作用,得额外重置。



















