現象:display: inline-block 的容器 .div2 內插入 <p> 後,容器向下偏移。安卓 Chrome 和 PC 瀏覽器加 overflow: hidden 可修復,但 iOS Safari 無效。
inline-block 元素默認 vertical-align: baseline。<p> 容器基線為 p 文本基線 → 導致垂直位置差異。.div2 { display: inline-block; vertical-align: top; } 或 middle、bottom。.div1 { font-size: 0; } .div2 { font-size: 14px; }.div1 { display: flex; } .div2 { flex: 0 0 80px; }iOS Safari 對 inline-block 的基線計算有特殊渲染路徑,overflow 不觸發格式化上下文重置基線。vertical-align 是標準 CSS 規範定義的對齊屬性,兼容性最可靠。
.div1 { /* 父容器 */ }
.div2 {
width: 80px; height: 50px;
background: #cc0000;
display: inline-block;
vertical-align: top; /* 關鍵修復 */
}
.p1 {
width: 80px; text-align: center;
font-size: 15px; background: greenyellow;
margin: 0; /* 重置 p 默認邊距 */
}
採用 vertical-align: top 一行代碼解決跨平台對齊偏移,簡潔且符合標準。