HTML中连续空格被合并为一个且首尾空格被忽略,这是规范行为;最常用的是 实体,它表示不间断空格,不会被合并或丢弃,适合词内分隔和对齐排版。
因为HTML解析器会把连续的空白字符(空格、换行、制表符)全部合并成一个空格,再在渲染时忽略首尾空格。你在代码里写10个空格、或回车缩进,页面上只显示1个空格,甚至完全不显示——这是HTML规范行为,不是bug。
是HTML实体,代表“不间断空格”(non-breaking space)。它不会被浏览器合并或丢弃,能稳定输出一个可见空格。
姓名: 张三
是字符,不是标签,不需要闭合,也不能嵌套除了 ,HTML还定义了多种空格字符,但多数有特定语义或兼容性风险:
:半个汉字宽(约1/2 em),常用于中文排版微调 :一个汉字宽(1 em),比 宽,但部分老浏览器支持弱 :很窄的空格(1/6 em),适合标点微调,但IE全系不支持 (即十进制空格ASCII码)等同于普通空格,仍会被合并,无效white-space属性更适合复杂排版如果要保留多空格、换行、缩进等原始格式,靠实体一个一个加既累又难维护。此时应该用CSS控制空白处理逻辑:
pre {
white-space: pre;
}
.code-block {
white-space: pre-wrap;
}
white-space: pre:完全保留空格和换行,类似 标签效果white-space: pre-wr
ap:保留空格换行,但允许自动换行,更实用white-space: pre,会影响所有文本的自然折行真正需要空格时,优先用 ;需要保留格式块时,交给 white-space;别为了“看起来整齐”在HTML里堆十几个 —— 那是把样式逻辑错放到结构层了。