父子元素边界完全对齐需系统性消除默认margin、padding、border、外边距合并、基线对齐及定位上下文缺失等干扰;须重置样式、触发BFC、调整vertical-align、设置父容器position:relative。

父子元素边界完全对齐,本质是消除默认的 margin、padding、border 和文档流中的隐式间距(比如行内元素的基线对齐、块级元素的外边距合并)。不是“设个 margin: 0 就完事”,而是要系统性地切断所有干扰源。
清除父容器的默认边距和内边距
浏览器对 块级子元素(如 文字 当子元素是 用 真正难的不是写出某一行代码,而是意识到“对齐”背后混杂了盒模型、格式化上下文、显示类型、定位机制四层规则。一个 、、margin 或 padding,子元素再怎么设 top: 0; left: 0 也对不齐。
body { margin: 0; padding: 0; },否则 默认有 8px 外边距padding 是否为 0 —— 有些 UI 框架(如 Bootstrap)会默认加 padding
box-sizing: border-box 建议全局设置,避免 width + padding + border 溢出导致视觉错位处理子元素的默认外边距合并(Margin Collapse)
、)的 margin-top 会和父容器的 margin-top 合并,造成“看起来没贴顶”。这不是 bug,是 CSS 规范行为。 中, 的 margin-top: 1em 没生效,反而让整个 overflow: hidden、padding: 0.01px 或 border: 1px solid transparent,触发 BFC 阻断合并margin: 0,尤其注意 h1–h6、p、ul、ol 这些自带 margin 的元素警惕行内/行内块元素的 vertical-align 和基线对齐
、、 等默认 display: inline 或 inline-block 时,它们按基线(baseline)对齐,会在底部留白,看似“没贴底”。
margin: 0 也不顶到父容器底边vertical-align: baseline 是默认值,而基线在字母 x 底部,不是元素底部vertical-align: top、bottom 或 middle;或直接设 display: block
font-size: 0 在父容器上可消灭行内元素间的空格间隙(但会影响内部文本,慎用)绝对定位时别漏掉父容器的定位上下文
position: absolute; top: 0; left: 0; 想让子元素严丝合缝贴住父容器四边?前提是父容器得是“定位上下文”——即其 position 值不能是 static(默认值)。
.parent { width: 300px; height: 200px; } .child { position: absolute; top: 0; left: 0; } → 子元素会相对于视口定位,而非父容器position: relative(或 absolute/fixed),哪怕它本身不需要偏移transform、filter 或 will-change,也会创建新的定位上下文,但可能带来渲染层或 z-index 意外,优先用 relative
margin-top: 0 不生效,可能是父容器没 BFC,也可能是子元素被 display: inline 拖了后腿——得一层层 inspect,而不是凭经验硬调。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











