移动端字符间距必须用letter-spacing且单位为em或rem;敲空格无效,因浏览器折叠空白符, 不随屏幕缩放;em单位可等比适配不同屏幕,px在小屏易过紧,%和无单位数字不可用。

移动端字符间距不能靠敲空格解决,必须用 letter-spacing,且单位必须是 em 或 rem;设 px 值在小屏上会过紧或失效。
为什么移动端直接敲空格或用 无效
浏览器对文本内连续空白符的折叠行为在所有设备上一致:无论你输十个空格、换三行还是加缩进,最终只渲染一个空格。而 是“不可换行空格”,它只保证不断行,不放大宽度—— 在 14px 字号下仍只是约 14px 宽,无法随屏幕缩放,更没法适配 iPhone SE 和 iPad Pro 的差异。
常见错误现象:
- 写
想让“按钮文字”左右留空,结果在 iPhone 上挤成一块 - 复制别人代码里的空格,粘贴后变成零宽字符
,DevTools 里显示为乱码 - 用
white-space: pre包文字,导致中文字体强制等宽、行高错乱
letter-spacing 在移动端必须用 em 单位
letter-spacing 是唯一能真正拉伸字符间物理距离的 CSS 属性,但单位选错就等于没写。
实操建议:
- 字号 ≤ 16px(如正文、表单提示):用
letter-spacing: 0.02em~0.04em,随font-size等比缩放 - 字号 ≥ 24px(如标题、按钮):可用
letter-spacing: 1px,但需加letter-spacing: 0.02em回退以防系统字体 fallback - 绝对别用
%或无单位数字(如0.1),前者被忽略,后者解析为0.1px,多数安卓 WebView 直接舍入为 0
示例:
button {
font-size: 14px;
letter-spacing: 0.03em; /* 关键:em 单位 */
}
@media (min-width: 768px) {
button {
font-size: 16px;
/* 不需要改 letter-spacing,em 自动放大 */
}
}
中英文混排时,letter-spacing 要分层控制
中文本身没有“字距调整”(kerning)概念,强行统一加 letter-spacing 会让宋体/思源黑体发虚;而英文大小写字母组合又容易因字形差异显得松散。
解决方案:
- 给英文部分单独包
ABC,再设.en { letter-spacing: 0.05em; } - 避免在
或上设letter-spacing:iOS Safari 16–17 下几乎不生效,Chrome 也仅部分支持 - 若用 WebFont(如 Alibaba PuHuiTi),务必等字体加载完成后再应用间距,否则 fallback 到系统字体时,
letter-spacing只能微调,救不了 kerning 缺失
最容易被忽略的一点:letter-spacing 的值不是越大越好,它会影响文本可读性阈值——在 12–14px 小字号下,超过 0.04em 就会让用户多花 10% 以上眼动时间识别字符边界。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











