移動端適配——rem方案
阿新 • • 發佈:2018-12-23
/*通過JS動態設定viewport,將視口等比放大到裝置獨立畫素大小,使css中的1px代表裝置獨立畫素中的1px
window.devicePixelRatio 是裝置上物理畫素/裝置獨立畫素(dips)的比例
公式:window.devicePixelRatio = 物理畫素 / dips
正常initial值為1顯示物理畫素,pixelRatio為要動態設定的比例顯示裝置獨立畫素
1/pixelRatio=物理畫素 / dips=window.devicePixelRatio*/
var pixelRatio=1/window.devicePixelRatio;
document.write('<meta name="viewport" content="initial-scale='+pixelRatio+',minimum-scale='+pixelRatio+',maximum-scale='+pixelRatio+',user-scalable=no"/>');
var html=document.querySelector('html');
//獲取可視視窗的寬度,是否含豎向滾動條寬度不一定,測試時設定子級元素border值時返回的width時有時含滾動條有時不含,不明原因
//因為用在移動端,所以也相當於螢幕寬度,是否含滾動條的寬度的問題也就不存在了。
//html預設width是與瀏覽器視窗同寬,document.documentElement.tagName==html
var width=html.getBoundingClientRect().width;
//設定根節點的字型大小,rem根據其設定大小,1rem=html.style.fontSize
//16為一基準值,可自己設定不同的基準值,注意設定頁面中元素字型大小是不要設定過小的rem,避免出現小於12px的字型
html.style.fontSize=width/16+'px';
//html的字型大小=螢幕寬度的16分之一=1rem