HTML中连续空格被合并为一个且首尾空格被忽略,这是规范行为;最常用的是 实体,它表示不间断空格,不会被合并或丢弃,适合词内分隔和对齐排版。

HTML里直接敲空格为什么没用
因为HTML解析器会把连续的空白字符(空格、换行、制表符)全部合并成一个空格,再在渲染时忽略首尾空格。你在代码里写10个空格、或回车缩进,页面上只显示1个空格,甚至完全不显示——这是HTML规范行为,不是bug。
是最常用也最稳妥的空格符号
是HTML实体,代表“不间断空格”(non-breaking space)。它不会被浏览器合并或丢弃,能稳定输出一个可见空格。
- 适合用于词内强制分隔,比如“第 1 章”防止数字被换行断开
- 适合替代多个空格排版,例如对齐文本:
姓名: 张三 - 注意:
是字符,不是标签,不需要闭合,也不能嵌套
其他空格实体要按需选用,别乱用
除了 ,HTML还定义了多种空格字符,但多数有特定语义或兼容性风险:
-
:半个汉字宽(约1/2 em),常用于中文排版微调 -
:一个汉字宽(1 em),比宽,但部分老浏览器支持弱 -
:很窄的空格(1/6 em),适合标点微调,但IE全系不支持 -
(即十进制空格ASCII码)等同于普通空格,仍会被合并,无效
CSS的white-space属性更适合复杂排版
如果要保留多空格、换行、缩进等原始格式,靠实体一个一个加既累又难维护。此时应该用CSS控制空白处理逻辑:
立即学习“前端免费学习笔记(深入)”;
pre {
white-space: pre;
}
.code-block {
white-space: pre-wrap;
}
-
white-space: pre:完全保留空格和换行,类似标签效果 -
white-space: pre-wrap:保留空格换行,但允许自动换行,更实用 - 避免对整页用
white-space: pre,会影响所有文本的自然折行
真正需要空格时,优先用 ;需要保留格式块时,交给 white-space;别为了“看起来整齐”在HTML里堆十几个 —— 那是把样式逻辑错放到结构层了。










