麻烦老师解答一下
# 具体遇到的问题
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
在这里输入代码,可通过选择【代码语言】突出显示
一个盒子100*100px 在dpr为2的屏幕下 根据rem适配后无论怎么缩放 结果都是横跨200*200物理像素点
假如在dpr为2的屏幕下 1rem为375/10=37.5px 盒子的宽度为2.667*2.667rem 在dpr为2的屏幕下
100px*100px横跨200*200个物理像素点但在标准屏幕750px 即dpr为1 此时1rem为750/10 此时盒子2.667*2.667rem换算之后就是 200px*200px
虽然大家都是横跨200*200个物理像素点 但是在屏幕尺寸相同的情况下 标准屏幕的单位像素点更大,高清屏幕的 单位像素点更小,高清屏的200*200物理像素明显要比标准屏幕的要小啊,所以这样怎么达到在不同手机屏幕下看到的100*100px的盒子是相同大小的???
感觉老师的适配方案里的font-size要乘上dpr才合理吧???
正在回答
同学你好,老师之前没明白同学表达的意思,这样理解是对的,很棒!
祝学习愉快!
同学你好,理解的不对,具体如下:
如果设计稿是750px的,元素在设计稿上的尺寸是200*200,当考虑dpr时,在dpr=2的屏幕上,html的宽度是750px(该节的通用适配方案,会根据dpr的值,调整html的宽度),此时1rem=75px,不是37.5,元素计算后的rem值是2.667rem(200/75=2.667,这个值计算之后,就保持不变),如下:

此时元素和设计稿上一样,是200*200的。
当不考虑dpr时,我们的适配代码,会计算得到html的fontsize是37.5px,即页面宽是375px,1rem=37.5,此时元素的rem值还是2.667rem,元素的尺寸计算后是100*100,不再是200*200:

即,考虑dpr时,元素是200*200,此时页面是750px宽的;当不考虑dpr时,元素是100*100的,此时页面是375px宽的,元素会跟随页面进行等比例缩放,因此元素相对于不同的html页面,看起来一样大,所以不用乘上dpr。
祝学习愉快!
- 参与学习 人
- 提交作业 622 份
- 解答问题 6815 个
微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星