!function(n){ var e=n.document, t=e.documentElement, i=720, d=i/100, o="orientationchange"in n?"orientationchange":"resize", a=function(){ var n=t.clientWidth||320;n>720&&(n=720); t.style.fontSize=n/d+"px" }; e.addEventListener&&(n.addEventListener(o,a,!1),e.addEventListener("DOMContentLoaded",a,!1)) }(window);
方法2
window.onload = function(){ /*720代表设计师给的设计稿的宽度,你的设计稿是多少,就写多少;100代表换算比例,这里写100是 为了以后好算,比如,你测量的一个宽度是100px,就可以写为1rem,以及1px=0.01rem等等*/ getRem(720,100) }; window.onresize = function(){ getRem(720,100) }; function getRem(pwidth,prem){ var html = document.getElementsByTagName("html")[0]; var oWidth = document.body.clientWidth || document.documentElement.clientWidth; html.style.fontSize = oWidth/pwidth*prem + "px"; }
首先,先说一个常识,浏览器的默认字体高都是16px
基本思路就是:利用rem单位,就是相对于跟(html)字体的大小,来计算相应元素的宽高 一般将html的font-size设置为:20px或30px或50px或100px 还有利用浏览器默认自己大小(16px)也就是16px*62.5%=10px,这样就是html{font-size:62.5%;},而不是html{font-size:10px;}因为浏览器(PC)最小就是12px。这样一来1rem = 10px; 我们来简单的看一下: <div id="wrap"> <div id="div1">我是一个div标签</div> </div> CSS设置样式 #wrap{
font-size: 20px;
} #div1{ font-size: 1em; width: 16em; height: 2em; background-color: lawngreen; }
厚积薄发,笨鸟先飞。