使用'em'指定字体大小时显示的字母大得离谱(或小)



我的CSS字体大小规则遇到了一些非常奇怪的行为。我自己可能正在做一些愚蠢的事情[一定是这样;-)],但我希望有人能为我指出来。

目前(出于测试目的)我在样式表中只有一个字体大小规则,它调节所有字体大小,就是这样:

p, div, a, span {
    font-size:3em;
}

现在我知道 3em 是一个相当大的字体大小(据我所知,它应该对应于大屏幕浏览器上大约 3*16 = 48 像素的宽度),但你在现实中看到的简直是荒谬的。看一看: http://www.svvreewijkdevaan.nl/nl/

如果您认为菜单中的字体大小(您在页面顶部看到)很大,请向下滚动一点,您会发现字母变得如此之大,以至于它们不再真正可识别为字母。

事实上,在 Firefox 检查工具中,我发现"3em"字母的字体大小为 (得到这个) 34992px,即近 35,000。这甚至意味着什么?

事实上,实际(显示的)字体大小(即宽度)似乎至少随着指定的em编号呈指数增长,而不是成比例增长。因此,例如,如果我将 3em 替换为 3.5em,则显示的字体大小至少会变宽两倍(实际上更多)。相反,如果我将指定的字体大小减小到 1em,我会得到大约 16px 的正常和预期大小。但是如果我把它变成 0.7em,宽度可能会减少到 2px(绝对不可读的小)。

为什么实际(显示的)字体大小不与样式表中指定的字体大小(以"em"表示)成比例增长?

em基于

元素的字体大小。现在,如果您将已设置字体大小的元素嵌套在一起em - 这些值将相乘

  • 要么不要嵌套字体大小设置为 em 的元素;
  • 为较少的元素设置它(例如仅针对 divp ,并让后代继承大小);
  • 或者改为查看rem单元。

最新更新