html默认压缩连续空白符,用 可保留多个空格;整块内容推荐标签或white-space:pre-wrap; / 因兼容性差且语义不清已少用。

HTML 里写空格,不是敲空格键就完事——浏览器会把连续多个普通空格、换行、制表符全压缩成一个空格。
怎么让 HTML 显示多个空格或保留空白格式
用 (non-breaking space)是最直接的方案。它是个 HTML 实体,浏览器不会把它和其他空格合并,也不会在换行时断开。
- 一个
= 一个固定宽度空格,类似 Word 里的“不换行空格” - 想空两格?写两个:
;三格就三个,以此类推 - 适合用在文字对齐、缩进、表格内微调等场景,比如“姓名:
张三” - 注意:过多
会让 HTML 可读性变差,也增加体积,别滥用
pre 标签和 white-space CSS 是更干净的替代方案
如果整块内容都需要保留空格和换行(比如代码片段、诗歌、日志输出),<pre class="brush:php;toolbar:false;"></code> 标签比堆 <code> </code> 合理得多。</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/ai/887" title="FormX"><img
src="https://img.php.cn/upload/ai_manual/001/503/042/68b6d46f7365f548.png" alt="FormX" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/ai/887" title="FormX">FormX</a>
<p>AI自动从表格和文档中提取数据</p>
</div>
<a href="/ai/887" title="FormX" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div>
<ul>
<li><code><pre class="brush:php;toolbar:false;">hello world</pre> 会原样显示那四个空格
<pre class="brush:php;toolbar:false;"></pre> 标签?可以用 CSS:white-space: pre; 或 white-space: pre-wrap;
pre-wrap 更实用:保留空格和换行,同时允许自动折行(pre 不折行,容易撑破容器)<pre class="brush:php;toolbar:false;"></pre> 默认有上下外边距和等宽字体,可能需要重置样式为什么 和 很少用
HTML 还有 (半个汉字宽)、 (一个汉字宽)这类实体,但实际项目中几乎没人用。
立即学习“前端免费学习笔记(深入)”;
- 它们的宽度依赖字体,不同浏览器/系统下表现不一致
- CSS 的
margin、padding或ch单位(如margin-left: 2ch;)控制更精准、更可控 - 语义不清:
看起来像“中文排版专用”,但现代网页早就不靠它对齐了 - 遇到要对齐数字或表格列,优先用
text-align+monospace字体,而不是塞一堆
真正麻烦的不是“怎么打空格”,而是没意识到 HTML 默认会折叠空白——很多人调试半天发现是这个原因,而不是 CSS 写错了。









