rem.js px为多少rem

JavaScript015

rem.js px为多少rem,第1张

rem是一个相对大小的值,它相对于根元素<html>,

设置html的字体大小的值为html{font-size: 87.5%}(也就是14px)。

然后其他的字体就是将要的值除以14得到的值;

比如默认的twentytwelve主题大小是960px;换算成rem就是960/14=68.57142857142857rem;

padding的24px也就是24/14=1.714285714285714rem,以此类推。

(font size of the root element)是指相对于根元素的字体大小的单位

目前,IE9+,Firefox、Chrome、Safari、Opera 的主流版本都支持了rem。即使浏览器不支持rem,就多写一个绝对单位的声明即可,浏览器会忽略用rem设定的字体大小。

(1)首先浏览器的默认字体大小是16px

(2)100%=16px => 6.25%=1px => 62.5%=10px,因为rem是相对于根元素,因此在css的html中全局声明font-size=62.5%,此时的1rem就等于10px,这样一来rem和px之间的换算就比较简单,使用起来更方便

(3)使用JS根据浏览器宽度(或浏览器可视区域宽度(clienWidth))动态设置html的大小

通过JS动态设置根元素的font-size,这样的好处是所有设备分辨率都能兼容适配,淘宝首页目前就是用的JS计算。如果不用JS也是可以做适配的,一般我们在做web app都会先统计自己网站有哪些主流的屏幕设备,然后去针对这些设备去做media query设置也可以实现适配,如:

(4)使用媒体查询设置根元素大小——rem和px在响应式中的应用对比,如:

(5)Rem自适应JS,现在也有封装好的JS供我们直接使用

(6)屏幕适配还有一种简单粗暴的做法,即设置viewport进行缩放

天猫web app的首页就采用过这种方式,以320宽度为基准,进行缩放,最大缩放为320*1.3 = 416,基本缩放到416都就可以兼容iphone6 plus的屏幕了,这个方法简单粗暴,又高效。