• 关于手机端适配的问题(rem,页面缩放)


    关于手机端适配的问题(rem,页面缩放)
    96 进击的小前端 关注
    2018.02.02 13:57 字数 320 阅读 19评论 0喜欢 0
    相信很多和会和我碰到一样的情况,就是你用rem去写移动端的时候,如果想引用别的UI库的时候,自己页面写的是rem单位,而ui库的css里面写的是px,大家都知道,rem是在html上设置font-size 字体大小。然后,,然后ui库的里面的px 会和 rem冲突,很麻烦,搜了很多办法都没找到好的解决办法!!!
    rem的做法

    (function() {
    var doc = document,
    win = window;
    var docEl = doc.documentElement,
    resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
    recalc = function() {
    var clientWidth = docEl.clientWidth;
    if(!clientWidth) return;
    //如果屏幕大于750(750是根据我效果图设置的,具体数值参考效果图),就设置clientWidth=750,防止font-size会超过100px
    if(clientWidth > 750) { clientWidth = 750 }
    //设置根元素font-size大小
    docEl.style.fontSize = 100 * (clientWidth / 750) + 'px';
    };
    //屏幕大小改变,或者横竖屏切换时,触发函数
    win.addEventListener(resizeEvt, recalc, false);
    //文档加载完成时,触发函数
    doc.addEventListener('DOMContentLoaded', recalc, false);
    })();
    本人在看帖子的时候,看到一个淘宝缩放页面的方法,亲测,效果不错,直接用px单位写,根据meta标签进行缩放。这样如果想引用ui库的css 就不会冲突了,嗯不错不错。

    附上缩放代码

    但是。。。但是。如果做app套浏览器壳的话,是不允许你使用meta标签缩放的。
    网易的做法是用css进行缩放。具体做法如下:
    html

    123
    css

    /* css reset from normalize*/

        html {
            
            /* 1 */
            -ms-text-size-adjust: 100%;
            /* 2 */
            -webkit-text-size-adjust: 100%;
            /* 2 */
        }
    
        body {
            margin: 0;
        }
    
        /* 上下拉动滚动条时卡顿、慢 */
    
        body {
            -webkit-overflow-scrolling: touch;
            overflow-scrolling: touch;
        }
    
        /* ios和android下触摸元素时出现半透明灰色遮罩 */
    
        a {
            -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
        }
    
        #getHeight {
            height: 100vh;
             100vw;
            position: absolute;
            top: 0;
            left: 0;
            z-index: -10;
        }
    
        #content {
             750px;
            transform-origin: 0 0;
            font-size: 36px;
        }
    
        #content {
            height: 100%;
        }
    

    js

    这样方法的好处就是用css进行缩放,在做app的时候也是没有问题的,缺点,就是代码比较多。
    不喜勿喷。谢谢!!!

  • 相关阅读:
    vim删除以#,空格开头的行
    Element-ui 中对表单进行验证
    VUE页面实现加载外部HTML方法
    vue-cli2嵌入html
    文字环绕图片
    LocalDate计算两个日期相差天数
    springboot+vue脚手架使用nginx前后端分离
    通过 Netty、ZooKeeper 手撸一个 RPC 服务
    Spring Native 项目,把 Spring 项目编译成原生程序!
    印象笔记吐槽
  • 原文地址:https://www.cnblogs.com/hellofangfang/p/9593160.html
Copyright © 2020-2023  润新知