css - 具有不同字体大小文本的行内 block 元素的垂直尺寸

标签 css vertical-alignment font-size

我有一系列带有 display:inline-block 的元素。它们包含不同字体大小的文本,并且彼此相邻显示。

我试图了解元素的垂直尺寸从何而来。

这是简单的代码:

<a class="icon"></a>
<a>H</a>
<a class="icon"></a>
<a>H</a>
<a class="icon"></a>

和CSS:

a {
  font-family: consolas;
  display: inline-block;
  padding: 10px;
  font-size: 14px;
}

.icon:before {
  content: "H";
  font-size: 44px;
}

a:not(:empty) {
  padding: 25px; // (44-14) / 2 + 10
}

现在,与我的预期相反,25px 不是用于补偿字体大小差异的正确填充值,但 27px 是。

我不太明白为什么 font-size: 44px 的文本高度实际上是 51px 而 14px 是 17px。

一旦考虑到这些值,就有意义了 (51 - 17)/2 + 10 = 27 是正确的填充补偿。

See fiddle here

最佳答案

line-height有关

如果您希望它们对齐,请将font-sizeline-height 设置为相同。

DEMO

关于css - 具有不同字体大小文本的行内 block 元素的垂直尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20959164/

相关文章:

html - Firefox 水平菜单问题,所有其他浏览器都很好

html - 垂直对齐前两个 div 不起作用

arrays - 如何将VBA一维数组输出从水平更改为垂直?

html - flex 布局中 62.5% 字体大小的用途

Java - 调整字体大小以适应区域

html - 如何通过周围的标签排除标签

html - 如何在网格中的图像上放置文本

jquery - 垂直对齐 Superslides 中的内容

android - 将 dp 转换为 float

html - 在屏幕中间居中一个 block