來源:
https://www.cnblogs.com/shirly77/p/6285232.html
px:相對長度單位。像素px是相對于顯示器屏幕分辨率而言的
em:相對單位,繼承父節點(層層繼承,傳遞)基準點為父節點字體的大小,如果自身定義了font-size按自身來計算(瀏覽器默認字體是16px),整個頁面內1em不是一個固定的值。
rem:相對單位,相對長度單位。r’是“root”的縮寫,相對于根元素<html>
的字體大小,?可理解為”root em”, 相對根節點html的字體大小來計算,CSS3新加屬性,chrome/firefox/IE9+支持。
(另外需注意chrome強制最小字體為12號,即使設置成 10px 最終都會顯示成 12px,當把html的font-size設置成10px,子節點rem的計算還是以12px為基準,所以網上很多文章提到的將html的font-size設為10方便計算不是那么可取)。
rem在移動端應用可參考淘寶的頁面http://m.taobao.com?(html的font-size通過動態計算獲取)
注:需設置meta縮放比1:1
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
vw:viewpoint width,視窗寬度,1vw等于視窗寬度的1%。
vh:viewpoint height,視窗高度,1vh等于視窗高度的1%。
vmin:vw和vh中較小的那個。
vmax:vw和vh中較大的那個。
vw, vh, vmin, vmax:IE9+局部支持,chrome/firefox/safari/opera支持,iOS?safari 8+支持,Androidbrowser4.4+支持,chrome for android39支持
其它的單位還有:
%:百分比
in:寸
cm:厘米
mm:毫米
pt:point,大約1/72寸
pc:pica,大約6pt,1/6寸
?
ex:取當前作用效果的字體的x的高度,在無法確定x高度的情況下以0.5em計算(IE11及以下均不支持,firefox/chrome/safari/opera/ios safari/android browser4.4+等均需屬性加么有前綴)
ch:以節點所使用字體中的“0”字符為基準,找不到時為0.5em(ie10+,chrome31+,safair7.1+,opera26+,ios safari 7.1+,android browser4.4+支持)
(1)怎樣計算rem
先設置font-size:的px
html {
font-size:100px;(也可以設置百分比)
}
body {
font-size:14px;(可以改變)
}
p {
//假如屏幕寬度是320px,那么字號是7px;
font-size:7px;
}
計算過程:
標準 640px?font-size:100px 設置字號 font-size:14px;則rem為0.14,即1rem=100px
屏幕寬度 改變為320px?那么font-size:變成50px?rem為0.14?則設置字號 font-size:50*0.14=7px?
(2) rem(App)
html {
font-size:15.625vw;(就是寬度640的手機)
}
body {
font-size:12px;?// font-size會被繼承,?為了避免后來修改font-size修改不來,就在body加上font-size:12px
}
最好按照寬度為320來計算,640相當于分成100份,那么320就分成50份,也就是說,原本有一個div寬度和高度都為50px,現在他們的寬度和高度都為1rem,不過得要美工給出的稿子要符合一定的規則才行。
額外說點:美工給的設計稿有兩種,一種是寬度是640px(小屏),然后適應各種手機屏幕寬度,就是說內容擴大了,缺點會變得模糊;一種是寬度750px(中屏),然后適應各種手機屏幕寬度,適應各種手機屏幕比較好