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

前端之家收集整理的这篇文章主要介绍了html – 为什么内联块的内容会影响它在容器中的位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Why does this inline-block element have content that is not vertically aligned4个
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对于内联块略有不同.

猜你在找的HTML相关文章