关于手机端适配的问题(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的作法css

(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 就不会冲突了,嗯不错不错。html

附上缩放代码前端

可是。。。可是。若是作app套浏览器壳的话,是不容许你使用meta标签缩放的。
网易的作法是用css进行缩放。具体作法以下:
htmlandroid

123

cssios

/* css reset from normalize*/web

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;
        width: 100vw;
        position: absolute;
        top: 0;
        left: 0;
        z-index: -10;
    }

    #content {
        width: 750px;
        transform-origin: 0 0;
        font-size: 36px;
    }

    #content {
        height: 100%;
    }

js浏览器

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

相关文章
相关标签/搜索