css3中單位px,em,rem,vh,vw,vmin,vmax的區別

hunhun1122發表於2016-09-07

px:絕對單位,頁面按精確畫素展示

em:相對單位,基準點為父節點字型的大小,如果自身定義了font-size按自身來計算(瀏覽器預設字型是16px),整個頁面內1em不是一個固定的值。

rem:相對單位,可理解為”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通過動態計算獲取)

頁面基準320px(20px),html font-size值的計算:

[javascript] view plain copy
  1. var ele=document.getElementsByTagName("html")[0],  
  2.      size=document.body.clientWidth/320*20;  
  3. ele.style.fontSize=size+"px"  
注:需設定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+支援)

相關文章