来一套移动端通用代码

此代码根据屏幕尺寸计算html font-size, 可实现1px像素border。
当页面宽度为375px;对应的物理像素为750px;
可直接根据750px设计稿里面的元素尺寸计算相应的rem值(其html font-size为20px)。
建议使用scss定义一个function,代码如下:

@function px2rem($px){
    $rem : 16px; // 基于屏幕宽度为750px 的html字体大小。
    @return ($px/$rem) + rem;
}

通用代码入下:

 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <!-- 禁止数字识别为电话号码 -->
    <meta name="format-detection" content="telephone=no">
    <!-- 忽略邮箱 -->
    <meta name="format-detection" content="email=no">
     <script>
        var viewport = document.querySelector("meta[name=viewport]");

            // 以物理像素显示页面元素
            var scale = 1/window.devicePixelRatio;
            if (window.devicePixelRatio == 1) {  
                viewport.setAttribute('content', 'width=device-width,initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no');  
            }else if(window.devicePixelRatio == 2) {
                viewport.setAttribute('content', 'width=device-width,initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no');  
            }else if(window.devicePixelRatio == 3) {
                viewport.setAttribute('content', 'width=device-width,initial-scale=0.3333333333333333, maximum-scale=0.3333333333333333, minimum-scale=0.3333333333333333, user-scalable=no');  
            }else{
                viewport.setAttribute('content', 'width=device-width,initial-scale='+scale+', maximum-scale='+scale+', minimum-scale='+scale+', user-scalable=no');
            }
            var docEl = document.documentElement;   
            var fontsize = 8 * (docEl.clientWidth / 375) + 'px';  
            docEl.style.fontSize = fontsize; 
            window.onresize=function(){
                fontsize = 8 * (docEl.clientWidth / 375) + 'px';  
                docEl.style.fontSize = fontsize; 
            }
    </script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在移动互联网快速发展的今天,手机的种类和尺寸越来越多,作为前端的小伙伴们可能会越来越头疼,但又不得不去适配一款又一...
    keenjaan阅读 27,061评论 9 86
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 一、meta标签的效果 移动端页面一般会在head头部添加如下meta标签。 该meta标签是否添加对页面渲染的影...
    nimw阅读 9,022评论 0 5
  • 偶然间发现这篇文章,可以说,这是我见到的对移动rem单位做的最详细,最细心的一篇总结性文章,果断转载至本博客,以便...
    阿宝er阅读 4,842评论 5 51
  • 电路为什么要有触发器这种结构? 2016-01-04 电子工程专辑 这是个很好的问题,因为触发器(flip flo...
    岳坛阅读 1,720评论 0 0

友情链接更多精彩内容