You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何示例中.container元素高度为4px而非0px?

问题分析

先看你提供的代码:

CSS 代码

* {
    margin: 0;
    padding: 0;
}
.container {
    position: absolute;
    font-size: 12px;
    font-weight: 400;
    line-height: 0;
}
.child {
    display: inline-block;
    width: 0;
    height: 0;
}

HTML 代码

<div class="container">
  <div class="child"></div>
</div>

你疑惑的点在于:为什么.container高度是4px,但把.child的display改成inline或block后,容器高度就变成0了?

原因很明确,这是inline-block元素的基线对齐规则导致的:

  • 当元素设为inline-block时,浏览器默认会让它和父元素的基线对齐。哪怕这个元素宽高都是0,浏览器也会为它保留基线下方的最小占位空间(不同浏览器这个默认值大多是4px左右),这就把.container撑出了4px的高度。
  • 改成block时,这个宽高为0的块级元素完全不占据垂直空间,父元素自然没有高度。
  • 改成inline时,空的行内元素在父元素line-height:0的设定下,不会触发基线对齐的额外占位,所以父元素高度也变成0。

内容的提问来源于stack exchange,提问作者Jianxin Yang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 04:18:20