如果在ems中指定文档的字体大小,那么"em"是什么?

Cha*_*l72 11 html css fonts em font-size

在CSS中,a em是基于文档字体大小的相对单位.那么,em如果文件本身的字体大小是用ems测量的那么究竟是什么呢?假设我们说:

<style type = "text/css">
body
{
    font-size: 1em;
}
</style>
Run Code Online (Sandbox Code Playgroud)

所以,em现在递归地定义了一个.那么这是如何由浏览器处理的?

W3C文档说:

'em'单位等于使用它的元素的'font-size'属性的计算值.例外情况是'em'出现在'font-size'属性本身的值中,在这种情况下它引用父元素的字体大小.它可用于垂直或水平测量.(此单位有时也称为印刷文本中的四边形.)

但是如果元素是document.body,那么没有父元素呢?

Bol*_*ock 24

body不是文档根元素 - 这是一个非常常见的误解.bodyis 的父元素html,其默认字体大小与浏览器的默认字体大小设置(通常16px)相匹配.1

这适用即使你设置一个font-size在EMS价值 bodyhtml.所以,如果你这样做:

html, body { font-size: 2em; }
Run Code Online (Sandbox Code Playgroud)

然后,假设16px用户设置的默认字体大小,html字体大小为32px(默认字体大小的两倍),body字体大小为64px(父级的两倍html).


1 准确地说,html元素的默认字体大小是初始值,medium根据规范,它对应于用户设置的首选默认字体大小.