问题描述
我们在开发了近十年的网站上遇到了一个问题:大多数新元素的默认 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 次的搜索和替换。
我想不出这种方法有什么“问题”,但我相信在你这样做之前肯定会有一些备份?!