• 移动端rem.js


    1.首先在我们的html页面中引入meta标签

    <meta name="viewport"   content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

    2.然后,在html页面中引入我们的rem.js适配脚本。(将下面的代码全部复制下来,在自己的项目代码里面新建一个rem.js脚本文件,将代码全部粘贴进去。然后在html页面中引入该脚本 )

    ;(function (designWidth, maxWidth) {
        var doc = document,
            win = window;
        var docEl = doc.documentElement;
        var tid;
        var rootItem, rootStyle;
    
        function refreshRem() {
            var width = docEl.getBoundingClientRect().width;
            if (!maxWidth) {
                maxWidth = 540;
            }
            ;
            if (width > maxWidth) {
                width = maxWidth;
            }
            //与淘宝做法不同,直接采用简单的rem换算方法1rem=100px
            var rem = width * 100 / designWidth;
            //兼容UC开始
            rootStyle = "html{font-size:" + rem + 'px !important}';
            rootItem = document.getElementById('rootsize') || document.createElement("style");
            if (!document.getElementById('rootsize')) {
                document.getElementsByTagName("head")[0].appendChild(rootItem);
                rootItem.id = 'rootsize';
            }
            if (rootItem.styleSheet) {
                rootItem.styleSheet.disabled || (rootItem.styleSheet.cssText = rootStyle)
            } else {
                try {
                    rootItem.innerHTML = rootStyle
                } catch (f) {
                    rootItem.innerText = rootStyle
                }
            }
            //兼容UC结束
            docEl.style.fontSize = rem + "px";
        };
        refreshRem();
    
        win.addEventListener("resize", function () {
            clearTimeout(tid); //防止执行两次
            tid = setT imeout(refreshRem, 300);
        }, false);
    
        win.addEventListener("pageshow", function (e) {
            if (e.persisted) { // 浏览器后退的时候重新计算
                clearTimeout(tid);
                tid = setTimeout(refreshRem, 300);
            }
        }, false);
    
        if (doc.readyState === "complete") {
            doc.body.style.fontSize = "16px";
        } else {
            doc.addEventListener("DOMContentLoaded", function (e) {
                doc.body.style.fontSize = "16px";
            }, false);
        }
    })(375, 750);

    3.最后,对我们刚刚创建的rem.js脚本进行一些简单的修改。回到我们上方的代码,整个代码就是一个函数,这个函数有两个参数,注意看一下代码的第一行,两个参数分别是designWidthmaxWidth,顾名思义,就是我们设计稿的宽度和我们设定的最大宽度。根据UI设计师给出的设计稿的宽度和规定的最大宽度给这两个参数进行传值。该如何进行传值呢,看一下上面代码的最后一行,是不是有两个数字即375750,就是在这两个数字分别就是对应着designWidthmaxWidth,我们只需更改这两个数字,即可完成传值

    4.一切都设置好之后,我们便可以根据设计稿的尺寸直接进行网页搭建了。如果设计稿上面某一个元素的尺寸是256px,那么我们在css样式中,将它的尺寸设置成2.56rem即可,即1rem=100px。元素的尺寸也按照这种关系转换即可。

  • 相关阅读:
    br-lan、eth0、eth1及lo (转)
    openwrt MT7628 编译前更改为DHCP,root 密码、ssid、时区、主机名
    Openwrt Uboot烧写
    区块链公链“三元悖论”专题之可扩展性(Scalability)
    物联网开发|如何选择一款适合你的物联网操作系统?
    oracle 处理Session不够用
    Redis 数据总结 (2.命令实现逻辑)
    Redis 数据总结(1 数据导入)
    Redis 数据库使用和搭建
    MySql 存储大量长字节 Text报错处理办法
  • 原文地址:https://www.cnblogs.com/webljl/p/13998559.html
Copyright © 2020-2023  润新知