HTML中空格被合并是因white-space默认为normal,需用 、CSS的pre-wrap等或布局属性解决。
HTML 中无法直接用空格键打出“多个连续空格”——浏览器会自动合并,这是规范行为,不是 bug。真要显示多个空格,必须用明确的语义或转义方式。
HTML 解析器默认将连续空白字符(空格、制表符、换行)压缩为单个空格,并忽略首尾空白。这是 white-space CSS 属性的默认值 normal 决定的。
是唯一能强制保留的“不可断行空格”,但它是字符级控制,不是排版级实体码本质是字符,插入后受字体、字号、行高影响,不能替代布局手段。选哪个取决于你要解决的具体问题:
:最常用,防止单词在行尾被拆开(如“100 km”),也用于占位;但大量使用会让 HTML 可读性变差 :宽度 ≈ 字母 n 的一半(en 宽度),适合中英文间微调间距 :宽度 ≈
字母 M(em 宽度),接近一个中文字符宽,常用于缩进对齐 :极细空格(1/6 em),适合标点与数字之间(如“12 345”中的千分位分隔)姓名:张 三
版本号:v2 3 1
实体码只是字符,而 white-space 是声明式控制,更适合结构化排版:
white-space: pre:保留所有空白和换行,类似 标签效果white-space: pre-wrap:保留空白,但允许自动换行(推荐日常多空格文本)white-space: pre-line:合并空格,但保留换行符(适合从后台取的带换行的文案)font-family: monospace 可让空格宽度更稳定(尤其在等宽字体下)第一行 第二列 第三栏 数据1 123 abc
编辑器里按 Space 键永远只输入普通空格字符(U+0020),它在 HTML 中就是会被压缩的那个。所谓“快捷方式”其实是编辑器或 IDE 的片段补全功能:
nbsp + Tab → 自动展开为
emsp 插入
最快,但别在源码里手敲几十个真正需要多个视觉空格的地方,90% 应该交给 CSS 的 padding、margin 或 text-indent,而不是在内容层用实体码硬凑。