我最近遇到以下代码就像魅力一样:
:root {
font-size: .8rem;
}
(即重新调整默认大小)。
我的问题是:为什么这有效?我是否正确使用:root
内的rem应该是非法的或定义不明确的(因为rem被定义为相对于:root
的font-size本身 - 所以使用rem来定义:root
的属性至少很奇怪。
谢谢!
P.S。这是一个元问题&#39;了解CSS背后的计算机制。我非常确定这样做的规范方法是在根元素上设置百分比大小(a.k.a。<html>
)。
答案 0 :(得分:2)
rem值是相对于根元素的font-size
属性,HTML文档是html元素。
根据关于rem值的CSS Values and Units Module Level 3:
等于根元素上font-size的计算值。什么时候 在根元素的font-size属性上指定的rem单位 参考财产的初始值
如果根元素上没有设置显式值,它会从用户可以更改的浏览器设置继承它的值;通常,浏览器设置中的默认字体大小为16px或中等。
因此,如果您在根元素上设置rem,则相对于浏览器设置中的默认值设置它