word-spacing 对中文基本无效,因它只作用于空格分隔的“词”,而中文无空格时整段被视为一词;调汉字间距须用 letter-spacing。

word-spacing 对中文文本基本无效,它只在空格、制表符或换行符分隔的“单词”之间插入额外空白;想调汉字间距,必须用 letter-spacing。
为什么给中文设 word-spacing 没反应
浏览器把“词”定义为被原始空白符(空格、\t、\n)包围的连续非空白字符序列。中文段落如 <p>欢迎来到首页</p> 中没有空格,整个字符串被当做一个“词”,word-spacing 就无处下手。
- 只有像
<p>登 录</p>(中间有真实空格)才会在“登”和“录”之间加间距 - 中英文混排时,仅英文部分生效:例如
<p>Contact us 联系我们</p>,word-spacing: 4px只撑开 “Contact” 和 “us” 之间,对“联系我们”完全没影响 - 用
或white-space: pre不能骗过word-spacing——它只认源码里的空白符,不认渲染后看起来像空格的字符
word-spacing 的合法值与常见误用
word-spacing 接受 normal、带单位的长度值(如 2px、-0.1em)、initial、inherit。其中 normal 等价于 0,不是“浏览器自定值”。
使用tbot机器ID身份文件配合tsh CLI,通过Teleport访问控制SSH登录托管主机或执行远程命令。
-
word-spacing: 0和word-spacing: normal行为一致,都取消额外词间距 - 负值允许,但
word-spacing: -5px在小字号(如font-size: 12px)下易导致英文单词粘连 - 慎用
em单位:它基于当前元素的font-size计算,父容器字体变化时,词间距会意外缩放 - 在
display: inline-flex或display: grid容器中,word-spacing可能被justify-content或gap覆盖,优先级更低
和 letter-spacing 混用时的实际效果
两者叠加生效,但作用对象完全不同:letter-spacing 拉开每个字符,word-spacing 只在词边界加空隙。混用容易失控。
立即学习“前端免费学习笔记(深入)”;
- 例如
button { letter-spacing: 1px; word-spacing: 4px; } <button>立即 购买</button>(中间有空格): “立”“即”各距 1px,“立即”与“购买”之间 +4px,“购”“买”又各距 1px → 实际视觉间距是 1px + 4px + 1px = 6px,远超预期 - 纯中文无空格时(如
<button>立即购买</button>),word-spacing完全不生效,只有letter-spacing起作用 - 调试时建议打开浏览器开发者工具的“Computed”面板,逐层查看两个属性的最终计算值,避免叠加后数值偏离直觉
真正需要调中文“词间距”时,没有原生 CSS 方案——要么手动插空格再配 word-spacing(破坏语义、影响可访问性),要么靠 letter-spacing 微调,再用 text-rendering: optimizeLegibility 或字体特性辅助。最稳妥的做法,是接受中文排版的天然节奏,把精力放在行高、字重、颜色对比等更可控的维度上。


















