为什么手机端定义 rem 基准字号会用 26.667vw?

2021-03-23  本文已影响0人  莫帆海氵

如何定义 rem 基准字号?

常见的设置基准字号大小是

html {
    font-size: 26.667vw;
}

为什么要这样设置?26.667 这个数值是怎么来的?

先从手机端的设计说起,常见的手机端设计稿会选择 375、360 等尺寸,这是基于当前最常见的手机尺寸。

前端开发一般都是基于给定的 UI 设计稿之后才开始工作,有了设计稿后前端的尺寸计算要选择一个方便计算的会更简单,那选择 10 的倍数(比如 100 )作为单位计算会更简便。

比如一个宽度为 180 的布局,就可以下面:

width: 1.8 * (单位尺寸);

假设我们选择 100 作为尺寸值,我们使用 1rem 作为单位尺寸,那就定义出:

1rem = 100px

上面的例子就可以写成

width: 1.8 * 1rem;
// 1.8 * 1rem = 180px

假设设计稿尺寸我们选择 375,这时的基准字号定义为 m,它的单位使用 vw,则有如下等式

1rem = 100px
1 x m.vw = 100px
1vw = 375(px) / 100
1 x m x 3.75px = 100px
m x 3.75 = 100
m = 100 / 3.75
m ~= 26.667

所以这是基准字号设置为 26.667 的原因。

也可以使用下面的计算公式

// 100vw 表示的是屏的宽度
100vw = 375px
// 1rem 也就是基准字号的大小
// 1rem = 100px
mvw = 100px

100vw/mvw = 375px/100px
m = 10000/375
m ~= 26.667

当然我们也可以选择设计稿的尺寸为 360,那同样计算得出基准字号就是 27.778。不论使用那个尺寸的设计稿都是可以。

我们可以同一个基准字号,计算出不同尺寸设计稿尺的转换公式,假设我们基准字号都使用 26.667vw,在 375 尺寸的设计稿下 1rem = 100px,那在 360 尺寸的设计稿下表示 100px 又是多少 rem 呢?

[375] 1rem = 100px
[360] ?rem = 100px

// 假设在 360 设计稿下,基准字号为 26.667vw
? * 26.667vw = 100px
? * 26.667 * 3.6px = 100px
? * 26.667 * 3.6 = 100
? = 100 / (26.667 * 3.6)
? = 100 / 96

所以使用 26.667vw 基准字号的 360 尺寸设计稿的单位尺寸可以表示为:

100/96rem

也可以用下面的公式转换

375 * 1rem = 100px
360 * ?rem = 100px
// 也就是
(375 * 1rem)/(360 * ?rem) = 1
375=360*?
? = 375/360
? = 100/96

所以我们常见的基准单位会表示成下面,表示 1px 的长度

1rem/96;
上一篇下一篇

猜你喜欢

热点阅读