热搜:NVER node 开发 php

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

2024-11-12 13:35:01
webapp新体验Rem实现移动端网页适配详解资源_html/css_WEB-ITnose

  本来想写一篇,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);