什么是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\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的字體大小,讓其他字體具有“響應式”啦。
又是午睡時間,如果本文有不正確的地方,請指出^_^