欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

webapp新体验Rem实现移动端网页适配详解资源_html/css_WEB-ITnose

程序员文章站 2022-04-28 16:21:38
...
  本来想写一篇,webapp使用Rem的问题,查了一下相关rem的介绍之后,发现很多平台已经解释的很清楚了,图文并茂,于是我便想将其解释资源整理一些,方便以后自己查阅。

   腾讯ISUX:web app变革之rem(解释的最精辟了)

   大漠博客:CSS3的REM设置字体大小 

   小黑成长录:关于webapp中的文字单位的一些捣腾

   前端观察站:px em rem在WEB前端开发中的区别

  最后分享一段淘宝手机屏幕尺寸判断改变字体大小的js:

!function(x) {    function w() {        var a = r.getBoundingClientRect().width;        a / v > 540 && (a = 540 * v), x.rem = a / 16, r.style.fontSize = x.rem + "px"    }    var v, u, t, s = x.document, r = s.documentElement, q = s.querySelector('meta[name="viewport"]'), p = s.querySelector('meta[name="flexible"]');    if (q) {        console.warn("将根据已有的meta标签来设置缩放比例");        var o = q.getAttribute("content").match(/initial\-scale=(["']?)([\d\.]+)\1?/);        o && (u = parseFloat(o[2]), v = parseInt(1 / u))    } else {        if (p) {            var o = p.getAttribute("content").match(/initial\-dpr=(["']?)([\d\.]+)\1?/);            o && (v = parseFloat(o[2]), u = parseFloat((1 / v).toFixed(2)))        }    }    if (!v && !u) {        var n = (x.navigator.appVersion.match(/android/gi), x.navigator.appVersion.match(/iphone/gi)), v = x.devicePixelRatio;        v = n ? v >= 3 ? 3 : v >= 2 ? 2 : 1 : 1, u = 1 / v    }    if (r.setAttribute("data-dpr", v), !q) {        if (q = s.createElement("meta"), q.setAttribute("name", "viewport"), q.setAttribute("content", "initial-scale=" + u + ", maximum-scale=" + u + ", minimum-scale=" + u + ", user-scalable=no"), r.firstElementChild) {            r.firstElementChild.appendChild(q)        } else {            var m = s.createElement("div");            m.appendChild(q), s.write(m.innerHTML)        }    }    x.dpr = v, x.addEventListener("resize", function() {        clearTimeout(t), t = setTimeout(w, 300)    }, !1), x.addEventListener("pageshow", function(b) {        b.persisted && (clearTimeout(t), t = setTimeout(w, 300))    }, !1), "complete" === s.readyState ? s.body.style.fontSize = 12 * v + "px" : s.addEventListener("DOMContentLoaded", function() {        s.body.style.fontSize = 12 * v + "px"    }, !1), w()}(window);