参见英文答案 >
Why does this inline-block element have content that is not vertically aligned4个
Here’s a fiddle that shows my code in action
Here’s a fiddle that shows my code in action
结果对我来说似乎很疯狂:在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>
更令人困惑的是,h1.plus上的填充会影响整个div的位置.
这里发生了什么?我想要两个按钮显示在同一条线上,并且根本不能理解为什么它们不是.这是渲染引擎中的错误吗?
更新:
Narendra建议一个简单的解决方案 – 浮动:离开按钮.我想弄清楚为什么这种错位首先发生.
解决方法
您正在使用display:inline-block,因此按钮按其vertical-align属性对齐,默认为baseline.
这是来自specs的图表,其中说明了:
您可以在前两个框中看到填充和内容的字体大小如何影响定位.
作为修复,使用vertical-align:top或bottom,甚至是middle.
编辑:图像来自表格部分,the situation对于内联块略有不同.