HTML默认压缩连续空格,需用 、white-space CSS或标签干预; 适合少量空格,white-space:pre-wrap最常用,适合预格式化内容,注意语义与兼容性。
HTML 默认会把多个连续空格压缩成一个,这是规范行为,不是 bug。要显示多个空格,必须用语义或格式化手段主动干预。
手动插入不间断空格这是最直接、兼容性最好的方式,适合少量、确定数量的空格场景。
是 HTML 实体,代表“non-breaking space”,浏览器不会合并它,也不会在行尾换行 ,注意中间不能换行或加空格,否则空格本身会被压缩 需写成 {'\u00A0'.repeat(4)} 或用 whiteSpace: 'pre' 更稳妥white-space CSS 控制空白符渲染行为这是更现代、更灵活的方式,尤其适合含空格的文本块(如代码片段、对齐文本、日志输出)。
white-space: pre:保留所有空白符(空格、换行、制表符),但不自动换行white-space: pre-wrap:保留空白符,且允许自动换行(最常用)white-space: pre-line:合并连续空格,但保留换行符(类似普通段落)hello world
pre,文字可能溢出而不可见 标签包裹文本 是语义化标签,内置 white-space: pre,适合展示预格式化内容(如代码、ASCII 图)。
立即学习“前端免费学习笔记(深入)”;
key: value
在 内部——HTML 规范不允许,部分浏览器会自动闭合导致结构错乱很多“空格没显示”问题其实不是空格本身的问题,而是上下文干扰导致的视觉误判。
或 contenteditable 元素中输入的多个空格,提交后可能被后端 trim 掉——检查服务端逻辑,不是前端没生效innerText 读取含 的文本时,会返回普通空格;要用 innerHTML 或 textContent 才能拿到原始实体 显示为小圆点或
空白,但鼠标选中时能看到长度——别光看面板,用 console.log(el.innerHTML) 确认"a" + " " + " " + "b",结果仍是 "a b"(两个空格),但渲染出来还是一个——关键不在 JS,而在 HTML 渲染阶段是否保留真正需要“多个空格”的场景其实不多:对齐字段、模拟终端输出、展示代码缩进、排版 ASCII 表格。多数所谓“空格不够”其实是设计需求没理清——比如用 text-align: right 或 flex justify-content: space-between 往往比硬塞空格更可靠。