國內的設計師大都喜歡用px,而國外的網站大都喜歡用em和rem,那么三者有什么區別,又各自有什么優劣呢?
px:像素(Pixel)相對長度單位。
相當于顯示器屏幕分辨率而言的(引自Css2.0手冊)
px的特點:
1.IE無法調整那些使用px作為單位的字體大小;
2.國外的大部分網站能夠調整的原因在于其使用了em或rem作為字體單位;
3.Firefox能夠調整px和em、rem,但是96%以上的中國網民使用IE瀏覽器(或者內核)。
em :相對長度單位。
是相對長度單位。相對于當前對象內文本的字體尺寸。如當前對行內文本的字體尺寸未被人為設置,則相對于瀏覽器的默認字體尺寸。(引自CSS2.0手冊)
em特點:
1.em的值并不是固定的;
2.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,也就是說只要將原來的px數值除以10,然后換上em作為單位就好了。
注意:
1.body選擇器中聲明font-size=62.5%;
2.將你的原來的px數值除以10,然后換上em做單位;
3.重新計算那些被放大的字體的em數值,避免字體大小的重復聲明;
rem:是CSS3新增的一個相對單位(root em,根em)
與em的區別
區別在使用rem為元素設定字體大小時,仍然是相對大小,但相對的只是HTML根元素,這個單位可謂集相對大小和絕對大小的優點與一身,通過它既可以做到只修改根元素就成比例的調整所有字體大小,又可以避免字體字體大小逐層復合的連鎖反應。目前,除了IE8及更早版本外,所有瀏覽器均已支持rem。對于不支持它的瀏覽器,應對方法也很簡單,就是多寫一個絕對單位的聲明。這些瀏覽器會忽略用rem設定的字體大小。