通過設定html根標簽的font-size值,控制rem來達到全局佈局的自適應的,CSS長度單位全部通過rem設定 必須在head在中引入不可以延遲引入; new function (){ var _self = this; _self.width = 750;//設置預設最大寬度 _self.mi ...
通過設定html根標簽的font-size值,控制rem來達到全局佈局的自適應的,CSS長度單位全部通過rem設定
必須在head在中引入不可以延遲引入;
(function (doc, win) { // 解析度Resolution適配 var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function () { var clientWidth = docEl.clientWidth; if (!clientWidth) return;
if(clientWidth>=750){//屏幕最大寬度設定值
docEl.style.fontSize = '100px';
}else if(clientWidth>320&&clientWidth<750){
docEl.style.fontSize = 100 * (clientWidth/ 750) + 'px';
}else{//最小屏幕設定值
docEl.style.fontSize = 100 * (320 / 750) + 'px';
}
}; // Abort if browser does not support addEventListener if (!doc.addEventListener) return; win.addEventListener(resizeEvt, recalc, false); doc.addEventListener('DOMContentLoaded', recalc, false); // 一物理像素在不同屏幕的顯示效果不一樣。要根據devicePixelRatio來修改meta標簽的scale,要註釋上面的meta標簽 (function(){ return; var dpr = scale =1; var isIPhone = win.navigator.appVersion.match(/iphone/gi); var devicePixelRatio = win.devicePixelRatio; if (isIPhone) { // iOS下,對於2和3的屏,用2倍的方案,其餘的用1倍方案 if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) { dpr = 3; } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)){ dpr = 2; } else { dpr = 1; } } else { // 其他設備下,仍舊使用1倍的方案 dpr = 1; } scale = 1 / dpr; // var metaEl = ""; metaEl = doc.createElement('meta'); metaEl.setAttribute('name', 'viewport'); metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no'); if (docEl.firstElementChild) { docEl.firstElementChild.appendChild(metaEl); } else { var wrap = doc.createElement('div'); wrap.appendChild(metaEl); doc.write(wrap.innerHTML); } })(); })(document, window);