我有一个简单的问题,您在哪里声明rem计算的基础尺寸?
<body>
<h1>Something</h1>
</body>
Run Code Online (Sandbox Code Playgroud)
我可以看到,font-size被<body>设置为16像素和<h1>设置为3rem,但字体是在30像素渲染时,我期望48像素。父母可以重新定义基础吗?
rem单位基于html元素的字体大小,而不是body元素。默认大小通常在html上为 16px,但是不能保证,用户可以更改该默认值。通常的做法是在html上手动将字体大小显式设置为通常的16px值,然后在其他位置使用rems设置最终显示值。
但是,这种做法在用户希望或需要增加默认字体大小时会出现可访问性问题,因此您应设计页面和布局,以使其能够适应不同的大小。
从https://developer.mozilla.org/en-US/docs/Web/CSS/font-size:
rem值是相对于根html元素而不是父元素。换句话说,它使您可以相对方式指定字体大小,而不受父字体大小的影响,从而消除了复合。