HTML中插入真正空格应优先用CSS的white-space属性而非多个 :标题用nowrap,描述用pre-wrap,代码用pre;避免用letter-spacing模拟对齐,须明确内容结构与样式职责分离。
浏览器默认会把连续多个 、普通空格、制表符、换行都压缩成一个空格。想让文字之间保留多个空格,必须用 HTML 实体或 CSS 控制。
是最常用的方式,代表一个不换行空格,适合在单词间加“不可折叠”的单空格 (比如 )能模拟多个空格效果,但语义差、可维护性低,仅适合极简静态文案white-space CSS 属性控制容器,比如 white-space: pre; 或 pre-wrap,让内部文本按源码空格/换行原样渲染卡片常通过 flex 或 grid 布局,内部文字若含多余空格,容易因父容器 justify-content、align-items 或字体度量差异导致视觉偏移。
——标题
描述文字
前的换行+缩进可能在某些字体下生成微小空白text-align: center 的卡片标题,若标题内有 ,可能让居中基准点偏移white-space 在卡片文字中的实际取值选择针对卡片内不同文字区域,应按需选值,不能一概设为 pre:
white-space: nowrap; 防止折行,配合 overflow: hidden; text-overflow: ellipsis;
white-space: pre-wrap;,既保留源码空格/换行,又支持自动折行v1.2.0 alpha):用 white-space: pre;,禁止折行且完全保留空格white-space: pre-line; 处理用户输入内容——它会把连续空格合并,只保留换行,易丢失格式意图font-family 和 letter-spacing 替代空格对齐的陷阱有人试图用等宽字体 + letter-spacing 模拟空格对齐,这在卡片布局中极易失效:
letter-spacing 作用于所有字符间隙,包括中文字符之间,会导致中文字间距异常拉大Consolas vs YaHei),卡片响应式缩放时对齐会漂移letter-spacing: 0.5em 可能变成 6px 或 8px,破坏设计预期text-align + 容器宽度控制,而不是靠空格“凑”
更稳定;而用户生成的内容,必须用 pre-wrap + 后端清洗,不能依赖前端硬编码空格。