HTML中连续空格会被浏览器压缩为单个空格,富文本编辑器需用 、 、 或CSS white-space属性控制;手动输入空格无效,应通过源码模式、插件或预处理替换实现。
HTML 中的空格不会直接显示为多个连续空格,浏览器默认会把连续空白字符(空格、制表符、换行)压缩成一个普通空格。富文本编辑器里看到的“多个空格”,实际是靠 、 、 或 CSS white-space 控制的。
用户在富文本编辑器(如 TinyMCE、Quill、CKEditor)里按空格键,表面看“空格生效了”,但保存后 HTML 源码里可能只留下单个 ,渲染时仍被压缩。这是因为编辑器底层通常用 contenteditable,而浏览器对它的空白处理和普通 HTML 一致。
,不保留数量Shift + Space(部分编辑器支持)→ 可能插入
或
才能强制显示这些是 HTML 实体,对应不同宽度的不可断行空格,常用于排版对齐或绕过空白压缩规则:
:不换行空格(non-breaking space),宽度 ≈ 1 字符,最常用,适合“防断行+占位” :en 空格,宽度 ≈ 0
:em 空格,宽度 ≈ 1 em,约一个中文字符宽,适合中文对齐、缩进 (更细)、(零宽不连字)等极少用于富文本场景,兼容性差且不易控制不能依赖“多按几次空格键”,得走明确路径。不同编辑器策略略有差异,但通用做法如下:
或
nonbreaking 插件),启用快捷键(如 Ctrl + Shift + Space 插入 ) 组合,例如 " " → (注意区分全角空格 和半角)white-space: pre-wrap 全局包裹内容 —— 它会让所有换行、缩进都原样显示,容易破坏响应式布局
姓名: 张三
电话: 138-0013-8000
真正麻烦的是混合场景:用户一边打字一边粘贴、编辑器自动清理、后端又做过滤。这时候空格行为就取决于各环节谁先转义、谁覆盖谁。最容易被忽略的一点是——全角空格 (Unicode U+3000)在富文本中常被当普通字符保留,但它不是 HTML 实体,也不受 white-space 影响,仅在中文字体下视觉宽度稳定,跨字体可能错位。