在CSS中,em
是基于文档字体大小的相对单位。那么,如果在ems中测量文档本身的字体大小,那么em
究竟是什么呢?假设我们说:
<style type = "text/css">
body
{
font-size: 1em;
}
</style>
因此,现在递归定义{{1}}。那么这是如何由浏览器处理的?
W3C docs说:
'em'单位等于'font-size'的计算值 使用它的元素的属性。例外是什么时候 'em'出现在'font-size'属性本身的值中,其中 case它指的是父元素的字体大小。可以使用它 用于垂直或水平测量。 (这个单位有时也是 在印刷文本中称为四边形。)
但是如果元素是em
,那么没有父元素呢?
答案 0 :(得分:24)
body
不是文档根元素 - 这是一个非常常见的误解。 body
的父元素为html
,其默认字体大小与浏览器的默认字体大小设置相匹配(通常为16px
)。 1
即使您在 font-size
和body
上的ems中设置html
值,这也适用。所以如果你这样做了:
html, body { font-size: 2em; }
然后,假设用户设置的默认字体大小为16px
,html
的字体大小为32px
(默认字体大小的两倍)和{{1} }的字体大小为body
(父级的两倍,64px
)。
1 准确地说,html
元素的默认字体大小是the initial value, medium
,根据规范对应于首选的默认字体大小用户。
答案 1 :(得分:0)
如果没有父元素定义它,浏览器的默认值为16px。
答案 2 :(得分:-2)
它与浏览器的默认字体大小无关,它将以物理大小指定,例如: '10PT'。