浏览器默认压缩连续空白符为单个空格,属html规范行为;全角空格可绕过但不推荐;应优先用css而非 实现布局;white-space属性更适合控制空白;保留字符需转义。

为什么连续敲空格没用?
浏览器默认会把连续的普通空格、制表符、换行符全部压缩成一个空格,这是HTML解析器的“空白折叠”行为。你写hello world,实际渲染出来就是hello world——中间只剩一个空格。
- 这不是bug,是规范行为,目的是让HTML源码更宽松、容错更强
- 直接复制粘贴中文全角空格
能绕过折叠,但它是字符而非实体,宽度依赖字体,不推荐用于精确控制 - 别用多个
硬凑对齐:语义不清、维护困难、响应式下易错位
什么时候该用 而不是CSS?
(不间断空格)真正适用的场景很窄,核心是“防断行+单点占位”,不是排版工具。
- 数字与单位之间:
价格: ¥99.00,避免¥被换到下一行 - 人名/专有名词内部:
阿 里 巴 巴(极少数需强制分字场景,非常规用法) - 表格中对齐需求简单且内容静态时,比如
<td>状态: 已发货</td> - 它不能替代
margin或padding:加十个不如写span { margin-left: 20px; }
white-space属性比一堆 更可控
当你要保留整段文本的缩进、换行、多空格结构(比如代码块、诗歌、日志输出),white-space是唯一合理选择。
-
white-space: pre;:完全保留源码空格和换行,但不自动换行,适合短代码片段 -
white-space: pre-wrap;:保留空格和换行,同时允许长行自动折行,日常最实用 -
white-space: pre-line;:合并连续空格,但保留换行,适合带段落的纯文本 - 注意:它作用于整个元素,不是单个空格;配合
<pre class="brush:php;toolbar:false;"></pre>标签只是语义强化,非必需
引号、小于号这些必须转义的字符怎么写?
不是所有符号都能直接敲键盘——、<code>>、&、"、'这五个是“保留字符”,不转义就会破坏HTML结构。
必须写成<code>或<code>,否则浏览器以为标签开始了-
&必须写成&,否则后面跟着的nbsp;会被当成一个整体实体解析 - 属性值里用双引号包裹时,内部双引号要写成
",比如title="他说:"你好"" - 中文弯引号
“”建议直接复制Unicode字符(前提是页面声明<meta charset="UTF-8">),比“/”更轻量
容易被忽略的是:这些规则只在HTML文本节点和属性值中生效;放进style属性或JavaScript字符串里,就得按对应语言规则转义,不是统一套&开头。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











