(function flexible(window, document) { var docel = document.documentelement var dpr = window.devicepixelratio || 1 // adjust body font size function setbodyfontsize() { if (document.body) { document.body.style.fontsize = (12 * dpr) + 'px' } else { document.addeventlistener('domcontentloaded', setbodyfontsize) } } setbodyfontsize(); // set 1rem = viewwidth / 10 function setremunit() { var rem = docel.clientwidth / 10 docel.style.fontsize = rem + 'px' } setremunit() // reset rem unit on page resize window.addeventlistener('resize', setremunit) window.addeventlistener('pageshow', function (e) { if (e.persisted) { setremunit() } }) // detect 0.5px supports if (dpr >= 2) { var fakebody = document.createelement('body') var testelement = document.createelement('div') testelement.style.border = '.5px solid transparent' fakebody.appendchild(testelement) docel.appendchild(fakebody) if (testelement.offsetheight === 1) { docel.classlist.add('hairlines') } docel.removechild(fakebody) } }(window, document))