Home  >  Article  >  Web Front-end  >  Webapp new experience Rem implements mobile web page adaptation detailed resource_html/css_WEB-ITnose

Webapp new experience Rem implements mobile web page adaptation detailed resource_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:48:401269browse

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

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn