You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CSS调整letter-spacing时word-spacing自动变化?该现象是否被认可?

问题解答

这是符合CSS规范的公认行为,但并不是word-spacing属性被自动调整了——本质是你混淆了letter-spacing的作用范围和word-spacing的定义:

  • letter-spacing作用于所有字符(包括空格字符)之间的间距,它会在每个字符(含空格)的右侧额外添加指定间距。所以当你给容器设置letter-spacing时,单词之间的空格字符也会被这个属性影响,视觉上的词间距会随letter-spacing的增减成比例变化。
  • word-spacing的作用是在单词之间的空格基础上,额外添加的间距,它本身不会被letter-spacing修改,你可以通过浏览器开发者工具查看元素的计算样式,会发现word-spacing始终保持默认的normal值。

你在CorelDRAW等设计软件里的体验不同,是因为这类软件的“字间距”通常仅作用于非空格字符,而“词间距”单独控制空格的宽度,和CSS的属性定义逻辑不一样。

验证示例

你提供的代码里,单词间的空格属于容器元素(h1/h2/h3)的内容,会被letter-spacing影响。如果要让空格不受letter-spacing影响,可以把空格单独放在不受该样式作用的元素里,比如:

<!DOCTYPE html>
<html>
<head>
<style>
h1{
  letter-spacing: 20px;
  font-size: 20px;
}

h2 {
  letter-spacing: 10px;
  font-size: 20px;
}

h3 {
  letter-spacing: 5px;
  font-size: 20px;
}
span {
  border-style: solid;
}
.space {
  letter-spacing: 0;
}
</style>
</head>
<body>

<h1><span>This</span><span class="space"> </span><span>is</span><span class="space"> </span><span>heading</span><span class="space"> </span><span>1</span></h1>
<h2><span>This</span><span class="space"> </span><span>is</span><span class="space"> </span><span>heading</span><span class="space"> </span><span>2</span></h2>
<h3><span>This</span><span class="space"> </span><span>is</span><span class="space"> </span><span>heading</span><span class="space"> </span><span>3</span></h3>

</body>
</html>

此时所有单词间的空格宽度一致,不会随letter-spacing变化,就能直观看到两者的区别。

内容的提问来源于stack exchange,提问作者Jack Trowbridge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:55:31