是 HTML 中表示不换行空格的实体,用于防止浏览器合并空白符或文字在特定位置断行;它对应 Unicode 字符 \u00A0,适用于人名职称、数字单位等需语义化防断行的场景。

HTML 中 是什么,为什么不能直接敲空格
HTML 会把连续的普通空格、换行、制表符全部合并成一个空格,这是规范行为,不是 bug。所以你在代码里写 hello,浏览器只显示一个空格。想保留多个空格或防止文字在特定位置断行,就得用 ——它代表“不换行空格”(non-breaking space),是 Unicode 字符 \u00A0 的 HTML 实体写法。
什么时候必须用 而不是普通空格
以下场景普通空格会失效或破坏排版意图:
- 人名/单位缩写后跟职称:比如
张三 博士,避免“张三”在行尾、“博士”被挤到下一行 - 数字与单位之间:如
100 px、24 小时,防止单位孤零零换行 - 表格中对齐需求:比如金额列右对齐时,
¥1,234.56比纯空格更可控(但更推荐用 CSStext-align) - 按钮内文字微调:如
保存多加一个视觉空隙,不过应优先考虑padding
和 CSS 的 white-space 怎么选
二者目标相似,但作用层级不同: 是内容层干预,CSS 是样式层控制。实际用法差异明显:
-
写在 HTML 里,每个空格都要手动写,适合少量、语义明确的防断行(如“Mr. Smith”) -
white-space: pre或pre-wrap会让整块文本保留所有空白符,适合代码块、诗歌等,但会失去自动换行能力 -
white-space: nowrap作用于容器,让内部所有文字不换行——这比给每个空格加更干净,例如导航菜单项: - 混合使用常见:比如用
white-space: nowrap包住一组词,再用分隔其中关键部分
容易踩的坑和替代建议
看似简单,但滥用会导致维护困难和可访问性问题:
立即学习“前端免费学习笔记(深入)”;
- 屏幕阅读器会把
读作“空格”,连续多个会读成“空格 空格 空格”,影响体验 - 复制粘贴时,
变成普通空格或乱码(尤其从网页复制到 Word 或终端) - 用它做缩进或对齐,不如用
margin/padding或text-indent;用它占位,不如用配合 CSS - 现代项目中,尽量用 CSS 控制布局,
仅保留在语义需要“不可分”的少数地方
真正难处理的是中文排版里的标点挤压、避头尾规则——这些 完全解决不了,得靠 CSS text-rendering、line-break 或专门的排版库。











