老师有问题

老师有问题

rem为什么是37.5    40不好吗,                  像素   /编程软件设置1px转为40  =  插件的值吗       

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


正在回答 回答被采纳积分+1

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

2回答
好帮手慕星星 2020-08-22 11:53:05

同学你好,这段代码是为了解决1px像素的问题。例如dpr为2的时候,1px边框会占据两个像素。所以meta标签中的缩放会跟着dpr不同而计算改变

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

后面是根据视口设置html字体大小,视口设置了最大最小值,在这个范围内改变的时候字体大小也跟着改变

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

自己再理解下,祝学习愉快!

好帮手慕星星 2020-08-21 11:02:12

同学你好,37.5比较容易转换,例如视口宽度375px,那么就会转化为10rem,是一个整数。这里一般和html的字体大小保持一致

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

10rem 乘以37.5为375 。

祝学习愉快!

  • 老师那这段代码作用是什么 (function () { 'use strict'; // dpr->scale = 1 / dpr var docEl = document.documentElement, viewportEl = document.querySelector('meta[name="viewport"]'), dpr = window.devicePixelRatio || 1, maxWidth = 540, minWidth = 320; dpr = dpr >= 3 ? 3 : (dpr >= 2 ? 2 : 1); docEl.setAttribute('data-dpr', dpr); docEl.setAttribute('max-width', maxWidth); docEl.setAttribute('min-width', minWidth); var scale = 1 / dpr, content = 'width=device-width, initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no'; if (viewportEl) { viewportEl.setAttribute('content', content); } else { viewportEl = document.createElement('meta'); viewportEl.setAttribute('name', 'viewport'); viewportEl.setAttribute('content', content); document.head.appendChild(viewportEl); } setRemUnit(); window.addEventListener('resize', setRemUnit); function setRemUnit() { var ratio = 30; var viewWidth = docEl.getBoundingClientRect().width || window.innerWidth; // console.log(viewWidth); if (maxWidth && (viewWidth / dpr > maxWidth)) { viewWidth = maxWidth * dpr; } else if (minWidth && (viewWidth / dpr < minWidth)) { viewWidth = minWidth * dpr; } docEl.style.fontSize = viewWidth / ratio + 'px'; } })();
    2020-08-22 10:49:08
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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