边框像素问题为什么解决不了

代码哪里有问题吗?
(function($) {
'use strict'
var docEl = document.documentElement;
// 解决dpr一边框像素问题
var dpr = window.devicePixelRatio || 1,
viewPortEl = document.querySelector('meta[name="viewport"]'),
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 = createElement('meta');
viewPortEl.setAttribute('name','viewport');
viewPortEl.setAttribute('content',content);
document.head.appendChild(viewPortEl);
}
// 设置Rem的单位
function setRemUnit(){
// 获取rem基准值
var viewWidth = docEl.clientWidth;
if(viewWidth && (viewWidth / dpr > maxWidth)) {
viewWidth = maxWidth * dpr;
}else if(viewWidth && (viewWidth / dpr < minWidth)){
viewWidth = minWidth * dpr;
}
var rem =viewWidth / 10;
docEl.style.fontSize= rem + 'px';
}
setRemUnit();
// 页面发生变化执行setRemUnit方法计算html根元素的font-size
window.addEventListener('resize',setRemUnit);
window.addEventListener('pageshow',setRemUnit);
})(jQuery);13
收起
正在回答 回答被采纳积分+1
4回答
好帮手慕久久
2020-09-11 11:57:20
同学你好,问题解答如下:
1. 同学的适配代码是没有问题的,所以改变dpr之后,html的fontsize就会改变,而fontsize的改变,也能从侧面说明我们的代码是对的。
2. 同学理解是对的。但是描述要优化一下,即“DPR从1改为2的时候,水平方向或垂直方向(或者说成高度方向),由原来的一个物理像素渲染一个css像素,改为用2个物理像素渲染一个CSS像素”,因此就造成了1px看起来变粗了。 解决该问题的办法就是,利用dpr将页面进行缩放,即dpr为1时,页面是375px的,而dpr=2时,我们将页面宽度变成750px,这样的转变,就解决了1px的问题。对此,目前同学里了解这么多即可,等以后实际开发了,理解的会深些。
祝学习愉快!
3.WebAPP开发与小程序
- 参与学习 人
- 提交作业 622 份
- 解答问题 6815 个
微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。
了解课程








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