px、em、rem的一些區別
阿新 • • 發佈:2018-12-16
px、em、rem的區別
px特點:
-
IE無法調整px作為單位的字型大小;
-
Firefox能夠調整px、em和rem。
-
px是畫素,是相對長度單位,是相對於顯示器螢幕解析度而言的。
em特點:
-
em的值並不是固定的;
-
em會繼承父級元素的字型大小。
-
em也是相對長度單位,相對於當前物件內文字的字型尺寸。如當前對行內文字的字型尺寸未被人為設定,則相對於瀏覽器的預設字型尺寸。
任意瀏覽器的預設字型高都是16px。所有未經調整的瀏覽器都符合:1em=16px。那麼12px=0.75em,10px=0.625em。為了簡化font-size的換算,需要在css中的body選擇器中宣告font-size=62.5%,這就使em值變為16px*62.5%=10px,這樣12px=1.2em,10px=1em,換算就會簡單多了。
這裡我們在寫CSS的時候要注意:
-
body選擇器中宣告font-size=62.5%;
-
將原來的px數值除以10,然後換上em作為單位;
-
重新計算那些被放大的字型的em數值,避免字型大小的重複宣告。(也就是避免1.2*1.2=1.44 的現象)。比如說在#content中聲明瞭字型大小為1.2em,那麼在宣告p的字型大小時就只能是1em,而不是1.2em,因為此em非彼em,它因繼承#content的字型高而變為了1em=12px。
rem特點:
rem是CSS3新增的一個相對單位(root em,根em)。
與em的區別:
- 使用rem為元素設定字型大小時,仍然是相對大小,但相對的是HTML根元素。
- 這個單位集相對大小和絕對大小的優點於一身,通過它既可以做到只修改根元素就成比例地調整所有字型大小,又可以避免字型大小逐層複合的連鎖反應。
- 目前除了IE8及更早版本外,所有瀏覽器均已支援rem。
- 對於不支援它的瀏覽器,應對方法也很簡單,就是px和rem一起使用,用px來實現IE6-8下的效果,然後使用rem來實現現代瀏覽器的效果。