remUnit的疑问

remUnit的疑问

之前在rem.js中已经设定了html字体大小为100px,也就是1rem=100px
平时写样式时,20px=0.2rem,浏览器解析出来也是20px,很方便

但我不明白,把remUnit设为50,或是其它数值的作用是什么?
当设为50的时候,20px=0.4rem,由于根元素(也就是html)的字体大小是100px,浏览器解析出来就会是40px,这就跟预期的20px不相等

请老师讲下remUnit不设为100,设为其它数值的意义何在?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,如果设计稿是640px,计算起来的确有点麻烦,需要将remUnit设置成640/750*100=85.33。px2rem-loader这个插件,主要是帮助我们计算,如果设计稿是640px,而rem.js会将html的字体大小设置成85.33px,假设设计稿上元素是100px宽,如果我们自己计算,公式是这样的:100/85.33;而这个过程可以使用px2rem-loader来完成,即将remUnit设置成85.33,那么插件就会自动将100px,按照100/85.33这个公式转成rem。

祝学习愉快!

好帮手慕久久 2020-12-09 17:22:07

同学你好,理解正确。

祝学习愉快!

  • 提问者 人生的起源 #1
    那如果给的是640呢?设置成640/750*100大小吗?
    2020-12-09 17:24:29
  • 提问者 人生的起源 #2
    如果设计师给的是640px的设计稿就凑不到整数了,有点麻烦
    2020-12-09 17:40:27
好帮手慕久久 2020-12-09 16:59:39

同学你好,问题解答如下:

1、rem.js中的代码,会按照页面的宽度来设置html的字体大小,当页面宽度是750px时,html的字体大小就是100px:

http://img1.sycdn.imooc.com//climg/5fd08e6009df535e11500102.jpg

设置成100就是为了方便计算。

2、由于我们当前的项目,设计稿是375px(不是750px),所以rem.js计算出来的html的字体大小就是50px(不是100),因此remUnit设置成了50px(二者保持一致)。此时375的设计稿上如果元素是20px,那么根据remUnit计算出来的rem值是0.4,而此时html的字体大小也是50px,所以元素在页面上也是20px,与设计稿是一样的。即,将remUnit设置成50px,就是为了与rem.js计算出来的html的字体大小保持一致。

3、同学所说的两种情况,比较的不对。正确应该是如下形式:

如果元素在750px的设计稿上是20px,那么换算成375px的设计稿,就应该是10px(等比缩小)。在750px上,元素是0.2rem(html是100px);在375px上,由于remUnit是50,根据它计算得到元素是0.2rem,而此时rem.js会将html的字体大小设置成50px,所以元素的实际尺寸是10px,与设计稿一致,但是是750px的一半,这样才是正确的。

同学再理解一下。

祝学习愉快!

  • 提问者 人生的起源 #1
    大概知道意思了,就是说如果设计给的是750px的psd设计稿,我就把remUnit设置成100,如果给的是sketch的375px的设计稿,我就把remUnit设置成50,这样就能与设计稿保持一致,是不是这样?
    2020-12-09 17:10:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
热门框架Vue开发WebApp 18版
  • 参与学习           人
  • 提交作业       209    份
  • 解答问题       3299    个

本路径是通过ES6基础知识、运用Zepto、Swiper、fullPag等移动端常用工具包、以及当下流行框架Vue,结合多个实战案例,还原真实开发场景,最终实现手机端购物商城网页开发。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码