1. 程式人生 > >px、em、rem的一些區別

px、em、rem的一些區別

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來實現現代瀏覽器的效果。