我一直在尝试配置一个基本的 CSS 模板,我可以用它来开始使用 REM。我看到设置以下 body { font-size: 62.5% };
的方法,以便数学更容易(1rem = 10px,因为 16px 是默认字体大小)。
我不确定我喜欢这种方式,因为它涉及必须指定 <h1>
- <h6>
以及 <p>
标签的大小,如果字体大小10px 不是我的基准。
我一直在尝试一些不同的方法,并且对 px
和 %
在字体大小方面的关系感到非常困惑。举个例子:
<html>
<body>
<header>
<h1>Testing h1</h1>
<h2>Testing h2</h2>
</header>
<main>
<p>Random paragraph</p>
</main>
</body>
</html>
考虑以下 css:
body {
font-size: 100%;
}
我希望浏览器以默认大小呈现字体,即 16px。 <p>
标签中的任何内容仍然是 16px,但是 <h1>
- <h6>
表恢复为浏览器样式中指定的原始大小。为什么不是所有文本都设置为 16px?
另一个例子:
body {
font-size: 12px;
}
为什么 <h1>
- <h6>
不采用 12px
的字体大小? <h1>
- <h6>
确实变小了(12/16 = 0.75 时缩小了 75%)。我希望 h1 为 12px 或保持相同的默认值,因为在用户代理样式表中为 h1-h6 指定的值更具体。
规则在指定百分比方面如何运作?在设置样式表以便可以使用 REM 方面的最佳实践是什么?
原文由 user483934 发布,翻译遵循 CC BY-SA 4.0 许可协议
h1
有一个默认值font-size
设置为2em
这意味着2 x the font size of the parent element
与其他标题相同,它们都有一个font-size
使用em
单位指定。Using percentage with
font-size
is also relative to parentfont-size
and meansp x the font size of the parent element
wherep
is a value between0
(0%)和1
(100%)。So if you specify
100%
within the body then the body will have16px
(the defaultfont-size
) andh1
will have32px
。您可以使用相同的逻辑找到其他标题的
font-size
。如果您在正文中指定
12px
则h1
将具有24px
并指定
62.5%
将使主体具有10px
和h1
20px
由于
p
没有默认值font-size
它只会继承主体中指定的值。您可以使用开发工具在计算选项卡中轻松检查这些值:
从 文档中:
对于百分比: