为什么内联块的内容会影响其在容器中的位置

Pau*_*aul 8 html css positioning button

这是一个显示我的代码在行动中的小提琴

结果对我来说似乎很疯狂:在Chrome中,第二个按钮略高于第一个按钮.在Firefox中略低于它.

<div id="accounts">
  <button class="account">
     <h1>VISA Card</h1>
     <span class="balance">-433.18</span>
  </button>
  <button class="account">
     <h1 class="plus"><i class="icon icon-plus-sign"></i></h1>
     <span class="plus-text">Add Account</span>
  </button>
</div>
Run Code Online (Sandbox Code Playgroud)

更令人困惑的是,h1.plus上的填充会影响整个div的位置.

这里发生了什么?我希望两个按钮出现在同一条线上,并且根本不能理解为什么它们不是.这是渲染引擎中的错误吗?

更新: Narendra建议一个简单的修复 - 浮动:离开按钮.我想弄清楚为什么这种错位首先发生.

use*_*621 15

您正在使用display:inline-block,因此按钮按其vertical-align属性对齐,默认为baseline.

这是一个规格图,它说明了这一点:

在此输入图像描述

您可以在前两个框中看到填充和内容的字体大小如何影响定位.

作为一个解决方法,使用vertical-align: top或者bottom,甚至middle.


编辑:图像来自表格部分,内联块的情况略有不同.