rem.js的理解

JavaScript04

rem.js的理解,第1张

普通的html 默认是16px = 1rem

为了让设计稿中字体大小 跟rem 换算成100的关系。

如果1倍尺寸的设计稿,例如375px 的设计稿和 375px的屏幕。 直接html 的fontSize 为100px 就可以了

设计稿宽度 desW

屏幕宽度 cW

如果是2倍的设计稿, html 的fontSize 为100px ,这时候 用100换算,相当于 字体大了一倍

这时候需要 屏幕 和设计稿 换算一个 比例

cw/desW *100

就是100倍的 设计稿 和rem 的换算关系

rem.js

知识点:

if条件的简单写法 如果>720,=720

n>720&&(n=720)

对于苹果手机orientationChange,旋转屏幕的事件。

当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而无需等待样式表、图像和子框架的完全加载。

rem是指根元素(root element html) 的字体大小 ,根元素默认的字体大小为16px。

rem是通过根元素进行适配的,网页中的根元素是html我们通过设置html的字体大小就可以控制rem的大小;

所以默认我们认为1rem=16px; 2rem=32px。

如果为了方便计算我们一般设置1rem=100px ,我们需要设置字体大小为100px

所以我们一般在js中做判断;:

如果是750的设计稿,但是手机是375的屏幕

对应的750设计稿 视觉测量值100px -->1rem

375的设计稿 页面显示的就是50px -->1rem

所以1rem和px的关系就是50倍的关系了: 屏幕/7.5 = 375/7.5=50px

这样1rem*50=50px(50px是375屏幕上面的长度,相当于750上的100px)

==========================================================

如果是375的设计稿,手机屏幕也是375px的

对应375的设计稿 视觉稿测量值为100px --->1rem

375 屏幕手机页面显示为100px -->1rem

所以1rem*100 = 100px (100px是375屏幕上的长度,相当于350上的100px)

===========================================================

综上所述,对于750的设计稿,375的手机和设计稿是50%的关系所以设计稿上100px

对应375手机上的50px;也就是1rem对应着50px。

document.documentElement.style.fontSize = (a/7.5) * 1 + "px"。

对于375的设计稿,375设计稿和手机的100%的关系,所以设计稿上100px,对应这375手机上的50px,也就是50px;

document.documentElement.style.fontSize =(a/7.5) * 2 + 'px'。

rem是一个相对大小的值,它相对于根元素<html>,

设置html的字体大小的值为html{font-size: 87.5%}(也就是14px)。

然后其他的字体就是将要的值除以14得到的值;

比如默认的twentytwelve主题大小是960px;换算成rem就是960/14=68.57142857142857rem;

padding的24px也就是24/14=1.714285714285714rem,以此类推。