使用rem设置内部的字体大小:根元素有效。为什么?

2022-08-25 00:00:00 font-size css

我最近遇到了这样一个事实:以下代码运行起来非常棒:

:root {
  font-size: .8rem;
}

(即它重新调整默认大小)。

我的问题是:为什么这样做有效?在:root中使用rem应该是非法的或定义不正确(因为rem被定义为相对于:root的字体大小本身-因此使用rem来定义:root的属性至少是奇怪的),这对吗?

谢谢!

附注:对于理解CSS背后的计算机制,这是一个"元问题"。我非常肯定,这样做的规范方法是在根元素上设置百分比大小(也称为。<html>)。

html

rem值相对于根元素的font-size属性,对于推荐答案文档,该属性是html元素。

根据CSS Values and Units Module Level 3关于rem值:

等于根元素上的Font-Size的计算值。什么时候 在根元素的Font-Size属性上指定,rem单位 引用属性的初始值

如果没有在根元素上设置显式值,它将从用户可以更改的浏览器设置中继承其值;通常,浏览器设置中的默认字体大小为16px或Medium。

因此,如果您在根元素上设置rem,则是相对于浏览器设置中的默认值进行设置

相关文章