在 CSS 中,
em
是一个相对单位,它基于文档的字体大小而定。那么,如果文档本身的字体大小也是使用 em 进行度量的话,em
究竟是什么呢?假设我们这样说:<style type = "text/css">
body
{
font-size: 1em;
}
</style>
因此,现在em
被递归定义。那么浏览器是如何处理它的呢?
W3C文档说:
'em'单位等于其使用的元素的 'font-size' 属性的计算值。例外情况是,当 'em' 出现在 'font-size' 属性本身的值中时,它指的是父元素的字体大小。它可以用于垂直或水平测量。(这个单位在排版文本中有时也称为“四分之一宽度”)。
但如果元素是document.body
,那么就没有父元素了怎么办?
em
基于给定元素的font-size
,或者如果它设置在font-size
上,则相对于其父级。如果您想要一个相对于文档根的font-size
的单位,那就是rem
。 - BoltClock