HTML中标签间换行和空格会被解析为文本节点并渲染为约4px间隙,这是规范行为;避免方法包括注释隔断、单行紧凑写法或构建时压缩空白,而非依赖font-size:0等易出错的CSS方案。

HTML 中的换行和缩进空格,在 、、 等行内或 inline-block 元素之间,会被浏览器当作一个真实空格渲染出来——这不是 bug,是规范行为;避免的关键不是“删掉所有空格”,而是控制哪些空白该保留、哪些必须消除。
为什么静态 HTML 里写换行就出 4px 间隙?
浏览器解析 HTML 时,会把标签之间的换行符( 不靠 CSS 折腾,直接从源头切断空白节点生成。有三种靠谱写法,按维护性排序: 可以,但得清楚代价:它让所有子元素的空白字符(包括你有意写的空格)都失去宽度,所以必须为每个子元素显式恢复 有些看似省事的做法,长期看反而增加维护成本或引入新问题: 真正稳定的方案,是统一团队的 HTML 编写习惯 + 构建流程自动化清洗,而不是靠某次临时 CSS hack 去掩盖结构性问题。\n)和缩进空格合并为一个文本节点,只要父容器是行内上下文(比如未设 display: block 的 font-size)。常见于:\n\n 这种多行写法。
inline / inline-block 元素,block 元素间换行通常无视觉间隙、、 等默认 inline,紧贴文字时尤其容易暴露间隙.html() 动态插入紧凑字符串(如 `)没间隙,是因为没生成那个文本节点HTML 源码怎么写才能既可读又无间隙?
吞掉空白,例如
html-minifier-terser 配置 collapseWhitespace: true + conservativeCollapse: false,但需小心 ignoreCustomFragments,否则 和 <script></script> 里的换行也会被删font-size: 0 能不能全局用?
font-size,否则文字看不见。典型写法:.no-gap {
font-size: 0;
}
.no-gap > * {
font-size: 16px;
display: inline-block;
}
等表单控件兼容良好,placeholder 不受影响font-size: 0 就完事,漏掉子元素字体重置会导致内容不可见文字),需确保该 也继承或设置了字体大小哪些“修复技巧”其实更危险?
替换普通空格:连续多个会破坏自动换行,移动端易溢出,且无法解决标签间间隙本质问题white-space: nowrap:强制整行不折,可能撑破容器,损害响应式表现 或零宽空格:DOM 节点变多、语义混乱、调试困难v-pre 或 {} 紧贴插值却不处理源码空白:只治标,下次别人改模板又踩坑
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











