tailwind的tracking类通过letter-spacing生效,但仅对内联元素有效;需注意中文字距慎用、单位为em更响应式、且受display/字体/渲染引擎等多重限制。

tracking类怎么写才生效
文字间距(letter-spacing)在Tailwind里靠tracking-前缀类控制,但它只作用于内联元素或设置了display: inline的元素,对div这种块级容器默认无效——除非你显式设了display: inline或inline-block。
-
tracking-tight对应letter-spacing: -0.025em,适合标题微调收紧 -
tracking-normal是重置项,等价于letter-spacing: 0,不是“默认值”——没加类时浏览器用自身默认,可能因字体而异 -
tracking-widest是0.1em,别乱用在正文,小字号下会明显断字 - 自定义值要改配置:在
theme.extend.spacing里加'1/2': '0.0625em',再用tracking-1/2
中文排版用tracking要特别小心
中文字体本身没有字距概念,letter-spacing强行拉开会导致字与字之间出现不自然空隙,尤其在font-size: 14px以下更明显。它不适合做“行内分隔”,更适合小范围强调(比如英文缩写、品牌Slogan里的大写字母)。
- 纯中文段落加
tracking-wide→ 字间发虚,阅读吃力 - 中英混排时,只给英文部分包一层
span再加tracking-wider更安全 - 想统一调整中文字距?该用
font-feature-settings: "kern"或换支持OpenType特性的字体,而不是tracking
和CSS原生letter-spacing的差异在哪
Tailwind的tracking-类本质就是编译成letter-spacing,但它的缩放单位是em,会随当前font-size等比变化;而手写letter-spacing: 1px是固定像素,在响应式场景下容易失衡。
-
tracking-wide在text-lg(18px)下≈1.2px,在text-sm(14px)下≈0.9px,相对稳定 - 直接写
style="letter-spacing: 0.05em"也能达到类似效果,但破坏原子类一致性,不好复用 - 注意:Safari旧版本对
em单位的letter-spacing渲染有轻微偏差,如果设计稿要求严丝合缝,得加@supports兜底
哪些情况tracking根本不起作用
最常踩的坑是以为加了类就一定生效,其实它会被其他CSS覆盖或被元素类型限制:
- 父元素设了
white-space: nowrap+overflow: hidden,文字被截断后tracking视觉上“消失” - 用了
font-variant-east-asian: tabular-nums这类OpenType特性,某些字体引擎会忽略letter-spacing - 元素有
transform: scale(),缩放会干扰em单位计算,间距变小或变大不可控 - 通过
@layer utilities自定义tracking时,忘了在tailwind.config.js里启用corePlugins: { ... },类名压根不生成
复杂点在于:它看起来是个简单开关,但实际生效依赖字体、尺寸、显示模式、甚至渲染引擎。调的时候别只看一个class,得连着font-size、display、line-height一起看。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











