HTML中普通空格不显示是浏览器默认行为,解析器会压缩连续空白并忽略首尾空格;需用 、或white-space CSS等语义化方式保留格式。
HTML 解析器会把连续的空白字符(空格、制表符、换行)压缩成一个空格,且首尾空格会被忽略。所以直接敲空格键,在页面上大概率看不到效果——不是你输错了,是 HTML 标准就这么设计的。
hello world
中,无论写 1 个还是 10 个空格,最终只显示 1 个 hello

)会被自动裁掉 (non-breaking space)能强制显示一个不可折行的空格,但它不是万能的,用多了反而影响可访问性和维护性。
margin、padding 或 text-indent
会导致屏幕阅读器朗读为“空格”,干扰语义;也增加 HTML 体积,不利于 SEO 或 white-space CSS如果真要保留原始空格、缩进和换行(比如展示代码片段、诗歌、ASCII 图),就得脱离默认渲染流。
标签天然保留所有空白,但语义是“预格式化文本”,别滥用在普通段落里white-space: pre;、white-space: pre-wrap; 或 white-space: pre-line;会显示全部空格,同时允许自动换行hello world
white-space: pre; 不换行,内容超宽会撑破容器;pre-wrap 更贴近日常需求除了 ,HTML 还定义了多个空格相关实体,但绝大多数情况没必要手动输入。
(en 空格,约 0.5em)和 (em 空格,约 1em):主要用于排版精细控制,比如表格对齐、公式空隙,普通网页极少需要 (窄空格,约 1/6em):数学或专业排版场景,如「123 456」千位分隔,但现代更推荐用 Intl.NumberFormat 自动处理 或 —— 和 等价,可读性差,易出错 只在真正需要“防断行 + 显式空格”的地方出现一次就够了。