什么是rem
在我看来,rem就是1rem单位就等于html节点fontsize的像素值。所以改变html节点的fontsize是最为关键的一步。根据手机宽度改变相对大小就可以实现自适应了,就不用什么媒体查询那些的。
我们的设计图往往宽度是640或者其他尺寸的,不过我建议是用这个尺寸,以640为基准,以小到大,实现自适应,下面实现的比例为1rem=40px(640宽度)。
为什么这样搞?
这样一套代码就搞定手机端尺寸自适应,不需要媒体查询,而且利用Sass和Less能够给我们节约更多的时间,以及更好的体验。
首先,先说一个常识,浏览器的默认字体高都是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 :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- 320px){ 2 html { 3 font-size: 62.5% !important; 4 } 5 } 6 @media only screen and (min- 640px){ 7 html { 8 font-size: 125% !important; 9 } 10 } 11 @media only screen and (min- 750px){ 12 html { 13 font-size: 150% !important; 14 } 15 } 16 @media only screen and (min- 1242px){ 17 html { 18 font-size: 187.5% !important; 19 } 20 }
这样子就能做到仅仅改变html的字体大小,让其他字体具有“响应式”啦。
又是午睡时间,如果本文有不正确的地方,请指出^_^