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

时间:2012-05-06 13:03:27

标签: html css fonts font-size em

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

<style type = "text/css">
body
{
    font-size: 1em;
}
</style>

因此,现在递归定义{{​​1}}。那么这是如何由浏览器处理的?

W3C docs说:

  

'em'单位等于'font-size'的计算值   使用它的元素的属性。例外是什么时候   'em'出现在'font-size'属性本身的值中,其中   case它指的是父元素的字体大小。可以使用它   用于垂直或水平测量。 (这个单位有时也是   在印刷文本中称为四边形。)

但是如果元素是em,那么没有父元素呢?

3 个答案:

答案 0 :(得分:24)

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

即使您在 font-sizebody上的ems中设置html值,这也适用。所以如果你这样做了:

html, body { font-size: 2em; }

然后,假设用户设置的默认字体大小为16pxhtml的字体大小为32px(默认字体大小的两倍)和{{1} }的字体大小为body(父级的两倍,64px)。


1 准确地说,html元素的默认字体大小是the initial value, medium,根据规范对应于首选的默认字体大小用户。

答案 1 :(得分:0)

如果没有父元素定义它,浏览器的默认值为16px。

另见:http://pxtoem.com/

答案 2 :(得分:-2)

它与浏览器的默认字体大小无关,它将以物理大小指定,例如: '10PT'。