rem的理解与应用

rem的理解与应用

前端的小伙伴有没有遇到一个问题,设计师给你的设计稿上面宽高都是固定的多少px,你根据设计稿高度还原了元素的宽高,结果产品经理却跟你说,不同设备下元素看起来大小不一样?有经验的前端人员就知道,这个时候该是rem登场了。
很多文章会告诉你,rem就是相对于根元素html的字体大小,我这里便不再累赘,我们直接看实际例子。

问题

在这里插入图片描述
如上图,有一个设计稿标注了全稿宽高为375和667px,其中一个div宽高为300和50px,如何做rem适配?

解决

分三步走:
1、获取屏幕大小 screenWidth
2、屏幕大小除以N,将屏幕均分为N份。即 N份 rem 占满整个屏幕。(为方便计算,暂且设N为10)
3、根元素的字体大小设为 screenWidth/rem,即设为一份rem的大小

实际代码如下:

    var html = document.querySelector('html');
    function setRem() {
        var screenWidth = window.innerWidth; //获取屏幕宽
        var rem1 = screenWidth / 10; //屏幕的宽度/设计稿占满全屏幕所需的rem数量,就可以得到1rem为多少像素。
        html.style.fontSize = rem1 + 'px';
    };
    setRem();
    window.onresize = function() {
        setRem();
    }

以上js代码,将屏幕平均分成10份(自定义,方便计算为主)也就是10rem占满整个屏幕。
如题 设计稿全宽为375px,div宽度为300px,那么此div的宽度应该为多少rem呢?
代入公式:元素宽度/设计稿全宽 = X/10,即 300px/375px = X/10,得出X = 8rem。
(375px=10rem,那么300px=8rem)

小伙伴你会了吗?欢迎评论交流!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值