是 HTML 中表示不换行空格的实体,用于防止浏览器合并空白符或文字在特定位置断行;它对应 Unicode 字符 \u00A0,适用于人名职称、数字单位等需语义化防断行的场景。
是什么,为什么不能直接敲空格HTML 会把连续的普通空格、换行、制表符全部合并成一个空格,这是规范行为,不是 bug。所以你在代码里写 hello,浏览器只显示一个空格。想保留多个空格或防止文字在特定位置断行,就得用 ——它代表“不换行空格”(non-breaking space),是 Unicode 字符 \u00A0 的 HTML 实体写法。
而不是普通空格以下场景普通空格会失效或破坏排版意图:
张三 博士,避免“张三”在行尾、“博士”被挤到下一行100 px、24 小时,防止单位孤零零换行 ¥1,234.56 比纯空格更可控(但更推荐用 CSS text-align)保存 多加一个视觉空隙,不过应优先考虑 padding
和 CSS 的 white-space 怎么选二者目标相似,但作用层级不同: 是内容层干预,CSS 是样式层控制。实际用法差异明显:
写在 HTML 里,每个空格都要手动写,适合少量、语义明确的防断行(如“Mr. Smith”)white-space: pre 或 pre-wrap 会让整块文本保留所有空白符,适合代码块、诗歌等,但会失去自动换行能力white-space: nowrap 作用于容器,让内部所有文字不换行——这比给每个空格加 更干净,例如导航菜单项:white-space: nowrap 包住一组词,再用 分隔其中关键部分 看似简单,但滥用会导致维护困难和可访问性问题:
读作“空格”,连续多个会读成“空格 空格 空格”,影响体验 变成普通空格或乱码(尤其从网页复制到 Word 或终端)margin/padding 或 text-indent;用它占位,不如用 配合 CSS 仅保留在语义需要“不可分”的少数地方真正难处理的是中文排版里的标点挤压、避头尾规则——这些 完全解决不了,得靠 CSS text-rendering、line-break 或专
门的排版库。