0

在这个问题中:为什么用 em 而不是 px?在最佳投票的答案中,em定义为:

em 不是一个绝对单位——它是一个相对于当前选择的字体大小的单位。除非您通过使用绝对单位(例如 px 或 pt)设置字体大小来覆盖字体样式,否则这将受到用户浏览器或操作系统中字体选择的影响(如果他们已经制作了字体),因此没有意义使用 em 作为一般长度单位,除非您特别希望它随着字体大小的缩放而缩放。

当您特别希望某物的大小取决于当前字体大小时,请使用 em。

我的网站主页中,我在页面标题(网站名称)中有一个字体大小等于 2.1 em 的h1标签,它看起来小于字体大小等于 1.9 em 的h2标签。以下屏幕截图演示了使用 Google Chrome 浏览器的情况:

在此处输入图像描述

我的问题是:在em定义中考虑的当前字体大小是什么意思?换句话说,我怎么知道当前的字体大小?

4

2 回答 2

4

这意味着em是基于font size最近的相对父级的。因此, 的 parent 设置的 font-size<h2>必须大于<h1>的 parent。

因此,例如,如果 的父级的<h2>字体大小为40px,而 的父级的<h1>字体大小为20px,则1.9em40px大于 2.1em20px

在此处阅读更多内容以了解字体大小调整的工作原理

更新/注意事项

如果您想保证页面中字体的大小,您应该考虑使用px设置font-size属性。使用px将保证字体大小是绝对的,而不是使用em得到的相对值。

于 2013-04-24T14:05:25.150 回答
1

只是在这里添加一个“基线”注释,如果您在 CSS 中将网站的基本字体大小设置为 100%,这相当于大约 16px 的大小。您还需要记住,如果您使用“em”作为度量单位,它将级联。这意味着如果您在容器元素上设置字体大小,则在其子元素上设置的任何字体大小都是根据该字体大小计算的。

例如,假设您将站点基本字体大小设置为 100%/16px。然后创建一个容器,其基本字体大小为 0.75em(大约 12px,12px/16px = .75)。然后在该容器中创建一个高度约为 24 像素的标题元素。要确定“em”值,您需要基于容器的字体大小,而不是基础站点字体大小。所以它不会是 1.5em(24px/16px,16px 是网站默认字体大小),而是 2em(24px/12px,12px 是容器上设置的字体大小)。

于 2013-04-24T14:20:56.400 回答