PX:
PX實際上就是像素,用PX設置字體大小時,比較穩定和精確。但是這種方法存在一個問題,當用戶在瀏覽器中瀏覽我們制作的Web頁面時,如果改變了瀏覽器的縮放,這時會使用我們的Web頁面布局被打破。這樣對于那些關心自己網站可用性的用戶來說,就是一個大問題了。因此,這時就提出了使用“em”來定義Web頁面的字體。
EM:
EM就是根據基準來縮放字體的大小。EM實質是一個相對值,而非具體的數值。這種技術需要一個參考點,一般都是以<body>的“font-size”為基準。如wordPress/ target=_blank class=infotextkey>WordPress官方主題Twenntytwelve的基準就是14px=1em。
另外,em是相對于父元素的屬性而計算的,如果想計算px和em之間的換算,這個網站不錯,輸入數據就可以px和em相互計算。狠擊這里:px和em換算
Rem:
EM是相對于其父元素來設置字體大小的,這樣就會存在一個問題,進行任何元素設置,都有可能需要知道他父元素的大小。而Rem是相對于根元素<html>,這樣就意味著,我們只需要在根元素確定一個參考值。
瀏覽器的兼容性
除了IE6-IE8r,其它的瀏覽器都支持em和rem屬性,px是所有瀏覽器都支持。為了瀏覽器的兼容性,可“px”和“rem”一起使用,用"px"來實現IE6-8下的效果,然后使用“Rem”來實現代瀏覽器的效果。
em與px轉換
一般瀏覽器默認1em=16px,通過設置font-size大小來代表如:16px*0.625=10px,其則代表1em=10px,直接上代碼(注釋的樣式為瀏覽器默認 (1em=16px)的長寬)。
在進行轉換之前,我們一定要查看瀏覽器默認字體(最小)大小,如chrome瀏覽器,默認字體最小為12px,所以即使我們為了方便設置1em=10px,其瀏覽器仍舊以1em=12px計算。
16px*0.75=12px=1em
em與rem區別
rem與px,和em與px轉換是一樣的,二者區別在于前者默認從根元素繼承,后者從父級元素繼承,還是上述代碼,html我們不設置font-size,其默認為16px。
從上述我們可以看到,div3單位設置rem后,其并沒有根據body設置而變化,仍舊默認font-size:16px。所以為了方便,我們可以設置16px*1.25=20px,其代表1em為20px,同樣有利于我們計算。