rem详解及使用方法
rem
是CSS3中新增加的一个单位值,他和em
单位一样,都是一个相对单位。不同的是em
是相对于元素的父元素的font-size
进行计算;rem
是相对于根元素html
的font-size
进行计算。这样一来rem
就绕开了复杂的层级关系,实现了类似于em
单位的功能。
首先,先说一个常识,浏览器的默认字体高都是16px。步入正题-----〉
- 兼容性:
目前,IE9+,Firefox、Chrome、Safari、Opera 的主流版本都支持了rem。
就算对不支持的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。
- 使用%单位方便使用
css中的body中先全局声明font-size=62.5%,这里的%的算法和rem一样。
因为100%=16px,1px=6.25%,所以10px=62.5%,
这是的1rem=10px,所以12px=1.2rem。px与rem的转换通过10就可以得来,很方便了吧!
- 使用方法
注意,rem是只相对于根元素htm的font-size,即只需要设置根元素的font-size,其它元素使用rem单位设置成相应的百分比即可;
例子:
1 /*16px * 312.5% = 50px;*/ 2 html{font-size: 312.5%;}
1 /*50px * 0.5 = 25px;*/ 2 body{ 3 font-size: 0.5rem; 4 font-size\0:25px; 5 }
一般情况下,是这样子使用的
1 html{font-size:62.5%;} 2 body{font-size:12px;font-size:1.2rem ;} 3 p{font-size:14px;font-size:1.4rem;}
- 优点
用一个东西肯定要知道它的好处啦,由于其他字体大小都是基于html的,所以在移动端做适配的时候,可以使用这样的方法
1 @media only screen and (min-width: 320px){ 2 html { 3 font-size: 62.5% !important; 4 } 5 } 6 @media only screen and (min-width: 640px){ 7 html { 8 font-size: 125% !important; 9 } 10 } 11 @media only screen and (min-width: 750px){ 12 html { 13 font-size: 150% !important; 14 } 15 } 16 @media only screen and (min-width: 1242px){ 17 html { 18 font-size: 187.5% !important; 19 } 20 }
这样子就能做到仅仅改变html的字体大小,让其他字体具有“响应式”啦。