为什么指定为1.0em的高度略小于font-size而不是相等?

时间:2012-07-15 09:42:26

标签: css

考虑Chrome调试器中显示元素样式的以下显示:

font-size: 18px;
height: 17.600000381469727px;
    .a, .h, .r - 1.0em
left: 52.80000305175781px;
line-height: 17.600000381469727px;
    .a, .h, .r - 1.0em

我的理解是,由于高度指定为1.0em,因此其像素值应精确等于font-size;相反,由于某种原因,它的尺寸小了0.4像素。填充或边距没有影响。

令人困惑的是,在早期版本中,一切正常:

font-size: 18px;
height: 18px;
    .stone, .iw-capture - 1em
line-height: 18px;
    .stone, .mark, .iw-capture - 1.0em

因此,浏览器的数学能力没有任何根本性的错误。但是,我无法弄清楚是什么改变导致奇怪的行为,或者为什么任何改变应该对此产生影响。

关于为什么会发生这种情况或者我缺少什么的想法?

2 个答案:

答案 0 :(得分:2)

计算em的公式是

1 ÷ parent font size (px) × required pixels = em equivalent

正如您所看到的,在您的情况下将1除以18会给您一个非常长的浮动,后来乘以18 - 并且它不会给您准确的相同的整数。这是浏览器的数学引擎..

答案 1 :(得分:0)

它看起来因为某种原因使用了元素的行高。