应使用 实体实现真正的空格,因其为不可换行空格,能抵抗浏览器空白合并;而 等同普通空格仍会被压缩,CSS外边距是首选方案, 仅作CSS不可达时的兜底。

HTML 里怎么打出真正的空格(不是自动合并的)
浏览器默认会把连续的普通空格、换行、制表符全部压缩成一个空格,所以直接敲空格键没用。要让空格“显形”且不被折叠,得用 HTML 实体或 CSS 控制。
-
是最常用也最稳妥的选择,代表 No-Break Space,强制显示一个不可换行的空格 - 多个
连用(比如)能模拟多个空格效果,适合简单对齐或微调间距 - 避免用
或做列表项间空隙——它们语义是排版单位(对应 2/4 字符宽),在不同字体下表现不稳定 - 注意:
在或white-space: pre环境里和普通空格行为一致,不会额外生效
列表项()之间加空格的推荐做法
别在 标签之间硬塞 ,既难维护又语义错乱。真正干净的做法是用 CSS 控制间距:
- 给
或设置margin-bottom或padding-bottom,统一控制项间距离 - 更精准的做法是给
加margin-bottom(比如margin-bottom: 0.5em;),最后一项用:last-child清掉,避免多余空白 - 如果必须用内联空格(比如纯文本场景),只在
内容末尾加,而不是放在标签之间——后者会被浏览器忽略或归为无效空白
和 有什么区别?该选哪个?
是空格字符的十进制 HTML 实体,等价于键盘空格,仍受浏览器空白合并规则约束;而 是专门设计来“抵抗合并”的。实际效果差异明显:
hello world
立即学习“前端免费学习笔记(深入)”;
← 显示为 “hello world”(三个可见空格)hello world
← 显示为 “hello world”(只剩一个空格)
- 需要“可见、稳定、不合并”的空格,一律用
-
几乎没优势,还容易让人误以为它比普通空格更“强” - XML/XHTML 场景下
也更通用,不用查编码表
为什么不用
或外边距替代空格?
是换行符,不是空格,用它分隔列表项会破坏语义结构,导致屏幕阅读器误读、SEO 权重分散;而外边距(margin)虽是首选方案,但若遇到内联元素、行高干扰或 legacy 模板无法改 CSS 的情况, 就是唯一可靠兜底。
- 纯文本邮件模板、CMS 富文本编辑器输出、老系统前端嵌入等场景,
是事实标准 - 用
margin时注意:IE8 及更早版本对:last-child支持差,需用:first-child反向处理或 JS 补丁 - 移动端小屏下,固定像素的
margin可能不如相对单位(如em或rem)灵活
只在 CSS 不可达时才出手。










