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

为何设置display:inline-block的两个div因边框不同出现错位?

问题:两个inline-block元素错位且顶部出现空白的原因

我设置了两个display: inline-block、box-sizing: border-box的div(id分别为d3和d4),二者宽高均为150px,仅边框宽度不同。但渲染时d4顶部出现空白且与d3错位,请问该现象的原因是什么?


代码示例

CSS代码

.myContainer {
  display: block;
}

#d3 {
  width: 150px;
  height: 150px;
  border: 5px solid #aef704;
  padding: 25px;
  background-color: blueviolet;
  box-sizing: border-box;
  display: inline-block;
}

#d4 {
  width: 150px;
  height: 150px;
  border: 2px solid #aef704;
  padding: 25px;
  background-color: brown;
  box-sizing: border-box;
  display: inline-block;
}

HTML代码

<html lang="en">

<head>
</head>

<body>
  <div class="myContainer">
    <div id="d3">test content d3</div>
    <div id="d4">test content d4</div>
  </div>
</body>

</html>

渲染效果

第二个div顶部出现空白且与第一个div错位


原因分析

这是inline-block元素默认的垂直对齐规则导致的问题:

  • inline-block元素默认的vertical-align属性值为baseline,即按文本基线对齐。
  • 两个div内部都有文本内容,浏览器会以文本的基线作为对齐基准。
  • 由于d3的边框宽度(5px)比d4(2px)宽,两个元素的文本基线相对自身元素的垂直位置存在差异,最终造成视觉上的错位和顶部空白。

简单来说,就是两个元素按文本基线对齐,但边框宽度的差异让元素整体位置发生了偏移。


内容的提问来源于Stack Exchange,提问作者Habil Harati

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 03:22:45