如何挽救 `html { font-size: 62.5%; }` 的情况,所以当我向页面添加新的文本元素时,默认情况下它们不会那么小?

问题描述

我们在开发了近十年的网站上遇到了一个问题:大多数新元素的font-size 太小,一些利益相关者无法轻松阅读。

这很奇怪,你可能会说!认的 font-size: 16px 不是一个相当合理的大小吗?我不能将根/正文字体大小增加到一些合理的认值吗?

是的,麻烦了!

不幸的是,这个网站开始时遵循了将根字体大小设置为 10 (!) 像素的风潮,并且不仅使文本而且元素/框的大小都与该度量相关! (请参阅 CSS 62.5% why do developers use it?https://benfrain.com/just-use-pixels/获取一些回顾。)所以我想事后看来是 20/20 — 现在如果我只是更改“认”(根)字体大小,我的布局的大约 89% 将增长用它。想象一下,如果你所有的乐高小人仔突然长到费雪牌人的大小......除了这里有一个固定大小的随机手臂/腿,或者眉毛的缩放比例是相对的去那边的别的东西!

是否有任何“逃生舱口”——开箱即用的 CSS 聪明或一些 LESS 编译器技巧——可能让我:

无需:

  • 通过大量的 LESS 样式规则手动修改所有现有的 rem/em 长度?

解决方法

我在这里可能有点粗心,但你不能回到过去的“搜索和替换”。

获取项目中使用的尺寸列表,快速搜索“\d{1,3}\.?\d{0,5}rem”应该涵盖大多数情况,然后只需过滤列表。 (1-3 位,可选十进制句号,可选 1-5 位然后 REM)。

首先搜索REM中的任意尺寸,将“1.6rem”变为“1rem”,将“2.4rem”变为“1.5rem”等

现在您可能会在这里看到一个问题,您不能一次性完成,因为您显然会遇到这样一种情况,即您更改了一个值,然后它在进一步的搜索和替换中发生冲突(您更改了一个值从 3.2rem 到 2rem,然后通过更改所有 2rem 大小并在不经意间更改较大的项目)。

相反,我会将值设置为比第一遍所需的值大 100 倍,然后将它们全部减少 100。 (所以 3.2rem 会在第一次通过时变为 200rem,然后在第二次传递时变为 200rem,很明显,如果您在任何地方使用 100+rem,则将其更改为 2000rem 等)

然后,一旦您完成所有这些操作,只需将根字体大小从 62.5% 更改为 100%。

这应该可以解决大约 95% 的问题,就好像有人正在使用 em 单位一样,它所使用的基本单位最终应该具有相同的大小。

使用这种方法,即使是使用 REM 调整 div 大小等的巨大应用程序,我也看不到您必须进行超过 50 次的搜索和替换。

我想不出这种方法有什么“问题”,但我相信在你这样做之前肯定会有一些备份?!