首先我們分下類,你要從根本上知道它:
絕對單位:px in cm mm
相對單位:em rem ?pt pc ex ch
百分比單位:vw vh vm %
下面進入正題:
px:絕對單位,頁面按精確像素展示
em:相對單位,基準點為父節(jié)點字體的大小,如果自身定義了font-size按自身來計算(瀏覽器默認字體是16px),整個頁面內(nèi)1em不是一個固定的值。
rem:相對單位,可理解為”root em”, 相對根節(jié)點html的字體大小來計算,CSS3新加屬性,chrome/firefox/IE9+支持。
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+支持,android browser4.4+支持,chrome for android39支持
你不怎么見過的單位:
%:百分比(好吧,這個估計你經(jīng)常用)
in:寸
cm:厘米
mm:毫米
pt:point,大約1/72寸
pc:pica,大約6pt,1/6寸
ex:取當(dāng)前作用效果的字體的x的高度,在無法確定x高度的情況下以0.5em計算
(IE11及以下均不支持,firefox/chrome/safari/opera/ios safari/android browser4.4+等均需屬性加么有前綴)
ch:以節(jié)點所使用字體中的“0”字符為基準,找不到時為0.5em。
(ie10+,chrome31+,safair7.1+,opera26+,ios safari 7.1+,android browser4.4+支持)
使用中問題:
em:
使用em的好處是在響應(yīng)式設(shè)計中,利用em的特性,你可以只通過改變body的字體大小一個值就修改了整個頁面的各種寬度大小。
em前面已經(jīng)說了瀏覽器默認字體高是16px,所以1em=16px。那么12px=0.75em, 10px=0.625em。這樣寫不太方便我們平時對單位進行換算,為了簡化我們需要在css中的body選擇器中聲明
Font-size=62.5%這就使em值變?yōu)?6px*62.5%=10px。這樣1em=10px,1.2em=12px利于我們進行換算
案例:

rem(解決em的問題):
rem也是相對單位,但是他和em不同的他是繼承自根結(jié)點,不繼承父元素,所以不會出現(xiàn)上面使用em出現(xiàn)的問題。rem用于響應(yīng)式設(shè)計通過改變根元素html的字體大小一個值就修改了整個頁面的各種寬度大小
例如根元素設(shè)置字體大小10px,一個容器里正文想用14px,容器就設(shè)1.4rem,標題想要20px,那么就設(shè)2rem。如果使用em,那么標題就要算一下了,20/14=1.4em,如果用2em,就變成28px了。所以rem的好處出來了。
百分比單位 %和vw
單位有一個特性是他也是繼承自父元素大小的單位
vw計算的是視察的寬度,并不是繼承自父元素大小。