CSS 字体 rem 技巧:62.5% 或 6.25%

Kam*_*ski 8 html css fonts

我想在 REM 中使用字体大小调整,在互联网上我发现了以下技巧

html { font-size: 62.5%; } 
body { font-size: 1.4rem; } /* =14px */
h1   { font-size: 2.4rem; } /* =24px */
Run Code Online (Sandbox Code Playgroud)

由于设置font-size: 62.5%;覆盖rem <-> px(像素)很容易(只需将像素值除以 10)。

但是我想知道 - 为什么不使用值6.25% - 在这种情况下,我们的技巧将如下所示:

html { font-size: 6.25%; } 
body { font-size: 14rem; } /* =14px */
h1   { font-size: 24rem; } /* =24px */
Run Code Online (Sandbox Code Playgroud)

并且这种方法看起来更直接,对于 62.5% 的值(我们可以将 rem 转换为 px 而不更改数值)-但是我有一个问题-为什么人们“在互联网上”不使用这种方法-可能会导致一些问题(即我不知道)?

Bol*_*ock 13

16px 的 62.5% 是 10px,这是一个更合理的基本字体大小,可以作为不支持 rem 单位的旧浏览器的后备,例如 IE8、Firefox 3.5、Safari 4 和 Opera 11。如果你设置了font-size: 6.25%,旧浏览器不理解 rem 的人将忽略您的所有 rem 声明,并在同一个非常小的字体中看到您的整个站点,使其不可读。请记住,16px(尽管有用户定义的字体大小)的 6.25% 是1 pixel。谷歌浏览器甚至强制要求最小字体大小为 6px(无论如何默认情况下;可以通过配置更改覆盖它,但不推荐),这实际上会干扰您的所有 rem 计算,即使它理解 rems 就好了。

传统的 62.5% 方法没有任何问题,按照您的方式偏离它没有任何好处——只有陷阱。是的,您可以说您不支持旧版浏览器,这很好,但这并不能改变这样一个事实,即有人在您的网站上使用旧版浏览器时将获得不可读的体验,而使用旧版浏览器则不会发生传统方法只是因为您,作者,希望在您的样式表中使用 1:1 px-to-rem 映射。

  • 我选择“6.25%”是因为——谁是奴隶:人还是机器?不要忘记我们是谁 - 让机器进行计算 - 我们是大师:P(引用:https://en.wikiquote.org/wiki/Yukihiro_Matsumoto) (2认同)

Jon*_*Jon 7

你可以使用6.25%,让你得到你的好1:1个雷姆值,然后设置font-size: 16em;body,以获得两全其美。它将修复旧浏览器中的小字体问题,并且理解您的 rem 声明的浏览器将通过在计算大小时查找html's来忽略它font-size。据我所知,这样做没有任何缺点,并且实际上比使用 62.5% 获得的回退规模更大,但可能有一些我遗漏的地方,因此请谨慎使用。

  • 有人可以说一下吗?在我看来,这是处理这个问题的好方法。但是我阅读了很多网站的源代码,但没有任何网站使用它(SO、Twitter、Instagram)。我不明白为什么,这对我来说似乎很有帮助。 (2认同)
  • 这是不正确的@mustafakemaltuna,ems 比 rems 更老,并且有更好的浏览器支持。据我所知,它们似乎自 CSS1 以来就已经存在:https://www.w3.org/TR/CSS1/ (2认同)