詳解css中px、em和rem的區別

一.概念

1、px (pixel,像素):是一個虛擬長度單位,是計算機系統的數字化圖像長度單位,如果px要換算成物理長度,需要指定精度DPI(Dots Per Inch,每英寸像素數),在掃描打印時一般都有DPI可選。Windows系統默認是96dpi,Apple系統默認是72dpi。

2、em(相對長度單位,相對於當前對象內文本的字體尺寸):是一個相對長度單位,最初是指字母M的寬度,故名em。現指的是字符寬度的倍數,用法類似百分比,如:0.8em, 1.2em,2em等。通常1em=16px。

3、pt (point,磅):是一個物理長度單位,指的是72分之一英寸。pt=1/72(英寸), px=1/dpi(英寸)

4、rem(root em,根em):是CSS3新增的一個相對單位,這個單位引起了廣泛關注。

二.特點

1.px

1. IE無法調整那些使用px作爲單位的字體大小;

2. 國外的大部分網站能夠調整的原因在於其使用了em或rem作爲字體單位;

3. Firefox能夠調整px和em,rem,但是96%以上的中國網民使用IE瀏覽器(或內核)。

2.em

1. em的值並不是固定的;

2. em會繼承父級元素的字體大小。

3.rem

1. 使用rem爲元素設定字體大小時,仍然是相對大小,但相對的只是HTML根元素。這個單位可謂集相對大小和絕對大小的優點於一身,通過它既可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層複合的連鎖反應。

2. 目前,除了IE8及更早版本外,所有瀏覽器均已支持rem。對於不支持它的瀏覽器,應對方法也很簡單,就是多寫一個絕對單位的聲明。這些瀏覽器會忽略用rem設定的字體大小

三.使用

1.px

固定值,直接賦值,不受其它影響;

2.em

1. body選擇器中聲明font-size=62.5%;

2. 將你的原來的px數值除以10,然後換上em作爲單位;

3. 重新計算那些被放大的字體的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, 也就是說只需要將你的原來的px數值除以10,然後換上em作爲單位就行了

3.rem

1. html選擇器中聲明font-size=62.5%;

2. 將你的原來的px數值除以10,然後換上rem作爲單位;

3. IE8及更早版本寫法(用px單獨定義絕對大小):

    例:p {font-size:14px; font-size:.875rem;}


注:
    1. IE9/IE10在用於僞元素時或者使用字體簡寫聲明時不支持rem 

    2. IOS Safari5.0-5.1雖然支持rem,但是在使用媒體查詢時不支持rem

px、em、pt單位轉換工具
地址:http://pxtoem.com/

發佈了24 篇原創文章 · 獲贊 25 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章