jianbine / articles

文档记录
0 stars 0 forks source link

H5适配问题 #4

Open jianbine opened 5 years ago

jianbine commented 5 years ago

在不同的分辨率大小,如何解决设配问题呢 ? 首先,看看页面头信息:

<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
<meta name="viewport" content="width=device-width, user-scalable=no, 
    initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />必要
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<meta name="apple-touch-fullscreen" content="yes" />
<meta name="format-detection" content="telephone=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />

可以发现,在H5页面中一般会引用viewport这个,来自响应界面,那么如何实现页面的自适应分辨率问题呢?可以通过以下方法进行处理:

<script type="text/javascript">
    function size(){
        var wDpr = window.devicePixelRatio;  
        var deviceWidth = document.documentElement.clientWidth;
        if(deviceWidth > 750){//设定最大的字体尺寸用的是750px的
            deviceWidth = 500;
        }
    // $("html").css("font-size",deviceWidth / 7.5 + 'px');
    document.documentElement.style.fontSize = deviceWidth / 7.5 + 'px'; //根据设计的尺寸宽度而定,这边设定的尺寸是750px的。
    document.getElementsByTagName("html")[0].setAttribute("data-dpr",wDpr);
    }
    size();
    window.onresize=function(){
        size();
    }
</script>

在上述代码中,主要是通过不同的分辨率,针对font-size和dpr进行计算改变,当分辨率大小发生变化,使用rem单位的样式,将自动改变相应的值。

注意:在页面中meta的值需要设置viewport,否则自适应分辨率将会失效。

具体可百度搜索关键词:html、font-size、dpr、resize、rem