(function(win, doc) { //3. 【原始宽度】 或者 【改变后的宽度】 经过换算,赋值到 html=>style=>font-size 640px 是设计稿的原始尺寸 var fn = function(width) { if (width <= 1080) { // 手机版本 doc.documentelement.style.fontsize = 100 * (width / 1920) + "px"; } else { // pc版本 doc.documentelement.style.fontsize = 100 * (width / 1920) + "px"; } var html = document.getelementsbytagname('html')[0]; var settedfs = parseint(html.style.fontsize); var realfs = parseint(window.getcomputedstyle(html).fontsize); var whilecount = 0; while (true) { var realfs = parseint(window.getcomputedstyle(html).fontsize); var delta = realfs - settedfs; //console.log(settedfs, realfs) if (math.abs(delta) != 0) //不相等 { html.setattribute('style', 'font-size:' + settedfs * ((settedfs - 1) / realfs) + 'px!important'); break; //settedfs/realfs 计算比实际值小n倍 然后在原基础上在放大n倍 } else break; if (whilecount++ > 100) //为了避免死循环 break } } function checkletie9() { var theua = window.navigator.useragent.tolowercase(); if ((theua.match(/msie\s\d+/) && theua.match(/msie\s\d+/)[0]) || (theua.match(/trident\s?\d+/) && theua.match(/trident\s?\d+/)[0])) { var ieversion = theua.match(/msie\s\d+/)[0].match(/\d+/)[0] || theua.match(/trident\s?\d+/)[0]; if (ieversion <= 9) { return true; //console.log('浏览器小于ie9,请升级!') } } return false; } if (!checkletie9()) { // 1.获取 client 屏幕宽度 var clien_width = doc.documentelement.clientwidth || doc.body.clientwidth; // 2.如果屏幕的宽度发生改变 触发 onresize 方法 window.onresize = function() { clien_width = doc.documentelement.clientwidth || doc.body.clientwidth; fn(clien_width); } fn(clien_width); } })(window, document);