(function(window, document) { var sizeUI = 750 // 定义设计图尺寸 var remBase = 75 // 定义基准值 var docEl = document.documentElement var bodyEl = document.querySelector('body') setRemUnit() window.addEventListener('resize', setRemUnit) window.addEventListener('pageshow', function(e) { if (e.persisted) setRemUnit() }) function setRemUnit() { var docFontSize = docEl.clientWidth / sizeUI * remBase docEl.style.fontSize = docFontSize + 'px' bodyEl.style.fontSize = 16 / docFontSize + 'rem' handleRemAdapt() } function handleRemAdapt() { var currentFontSize = parseInt(docEl.style.fontSize) var temp = currentFontSize for (var i = 0; i < 100; i++) { var realFontSize = parseInt(window.getComputedStyle(docEl).fontSize) var differ = realFontSize - currentFontSize if (Math.abs(differ) >= 1) { if (differ > 0) { temp-- } else { temp++ } docEl.style.fontSize = temp + 'px' } else { break } } } })(window, document)