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

为何含文本与无文本的div位置不同?如何实现垂直对齐?

解决inline-block子元素垂直错位问题

嘿,这个问题我太熟悉了!你碰到的是inline-block元素默认的基线对齐在搞鬼——浏览器会把有文本的子元素的文本基线作为对齐基准,而空的子元素则会把自身的底部当作基线,两边基准不一样,自然就出现高低错位的情况了。

最简单的修复方法

只需要给.child类添加vertical-align属性,把对齐方式从默认的baseline改成top、middle或者bottom都能解决,推荐用top或者middle,效果更符合预期:

.child {
  display: inline-block;
  width: 20%;
  height: 50px;
  border: 2px solid #00f;
  vertical-align: top; /* 关键修复代码 */
}

原理说明

inline-block元素默认的vertical-align值是baseline,这个基线的位置会根据元素内的内容变化:有文本的子元素,基线是文本的底部(比如字母"x"的底部);空的子元素,基线就是元素的底部边缘。强制设置统一的垂直对齐方式后,所有子元素就会按照同一个基准线对齐,自然就整齐了。

修改后的完整代码

<html>
<head>
  <style>
    .parent {
      background-color: #fff;
      width: 80%;
      border: 2px solid #f00;
    }
    .child {
      display: inline-block;
      width: 20%;
      height: 50px;
      border: 2px solid #00f;
      vertical-align: top;
    }
  </style>
</head>
<body>
  <div class="parent">
    <div class="child"></div>
    <div class="child">Text1</div>
    <div class="child"></div>
    <div class="child">Text2</div>
  </div>
</body>
</html>

你也可以试试vertical-align: middle,会让元素在垂直方向居中对齐,效果也不错,看你的需求选择就行~

内容的提问来源于stack exchange,提问作者Jonathan Krost

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:26:55