佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > css中的px、em、rem、pt 特點和區(qū)別及換算詳解

css中的px、em、rem、pt 特點和區(qū)別及換算詳解

熱門標簽:百度競價排名 網(wǎng)站文章發(fā)布 科大訊飛語音識別系統(tǒng) 企業(yè)做大做強 團購網(wǎng)站 太平洋壽險電話營銷 國美全國運營中心 網(wǎng)站排名優(yōu)化

概念介紹

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

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

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

4、rem(root em,根em):是CSS3新增的一個相對單位,這個單位引起了廣泛關(guān)注。這個單位與em有什么區(qū)別呢?區(qū)別在于使用rem為元素設(shè)定字體大小時,仍然是相對大小,但相對的只是HTML根元素。這個單位可謂集相對大小和絕對大小的優(yōu)點于一身,通過它既可以做到只修改根元素就成比例地調(diào)整所有字體大小,又可以避免字體大小逐層復(fù)合的連鎖反應(yīng)。目前,除了IE8及更早版本外,所有瀏覽器均已支持rem。對于不支持它的瀏覽器,應(yīng)對方法也很簡單,就是多寫一個絕對單位的聲明。這些瀏覽器會忽略用rem設(shè)定的字體大小。

1、em與px的問題

px是何物?

px像素(Pixel)。相對長度單位。像素px是相對于顯示器屏幕分辨率而言的。(引自CSS2.0手冊)

em是相對長度單位。相對于當前對象內(nèi)文本的字體尺寸。如當前對行內(nèi)文本的字體尺寸未被人為設(shè)置,則相對于瀏覽器的默認字體尺寸。(引自CSS2.0手冊)

PX特點

1. IE無法調(diào)整那些使用px作為單位的字體大??;

2. 國外的大部分網(wǎng)站能夠調(diào)整的原因在于其使用了em或rem作為字體單位;

3. Firefox能夠調(diào)整px和em,rem,但是96%以上的中國網(wǎng)民使用IE瀏覽器(或內(nèi)核)。

em是何物?

em 指字體高,任意瀏覽器的默認字體高都是16px。所以未經(jīng)調(diào)整的瀏覽器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。為了簡化font -size的換算,需要在css中的body選擇器中聲明Font-size=62.5%,這就使em值變?yōu)?6px*62.5%=10px, 這樣12px=1.2em, 10px=1em, 也就是說只需要將你的原來的px數(shù)值除以10,然后換上em作為單位就行了。

em特點:

1em指的是一個字體的大小,它會繼承父級元素的字體大小,因此并不是一個固定的值。任何瀏覽器的默認字體大小都是16px。因此,12px = 0.75em。實際應(yīng)用中為了方便換算,通常會如下設(shè)置樣式:

html { font-size: 62.5%; }

這樣,1em = 10px。我們常用的1.2em理論上就是12px。但是,這個換算在IE瀏覽器下不成立,1.2em會比12px稍大一些,解決辦法是把html標簽樣式中的62.5%改成63%,即:

html { font-size: 63%; } 

在 中文的文章中,一般會在段首空兩格。如果用px作為單位,對12px字體來說需要空出24px,對14px字體來說需要空出28px……這樣換算非常不通 用。如果用上em單位,這個問題就很好解決了,1個字的大小就是1em,那兩個字的大小就是2em。因此,只需這樣定義就行了:

p { text-indent: 2em; }

em和px兩種字體單位的區(qū)別

字體單位應(yīng)該用em而不用px,原因簡單來說就是支持IE6下的字體縮放,在頁面中按ctrl+滾輪,字體以px為單位的網(wǎng)站沒有反應(yīng)。px是絕對單位,不支持IE的縮放,em是相對單位。
我在調(diào)整本blog的時候,發(fā)現(xiàn)不僅僅是字體,將行距(line-height),和縱向高度的單位都用em。保證縮放時候的整體性。

em有如下特點:
1. em的值并不是固定的;
2. em會繼承父級元素的字體大小。

em重寫步驟:

1. body選擇器中聲明Font-size=62.5%;
2. 將你的原來的px數(shù)值除以10,然后換上em作為單位;
簡 單吧,如果只需要以上兩步就能解決問題的話,可能就沒人用px了。經(jīng)過以上兩步,你會發(fā)現(xiàn)你的網(wǎng)站字體大得出乎想象。因為em的值不固定,又會繼承父級 元素的大小,你可能會在content這個div里把字體大小設(shè)為1.2em, 也就是12px。然后你又把選擇器p的字體大小也設(shè)為1.2em,但如果p屬于content的子級的話,p的字體大小就不是12px,而是1.2em= 1.2 * 12px=14.4px。這是因為content的字體大小被設(shè)為1.2em,這個em值繼承其父級元素body的大小,也就是16px * 62.5% * 1.2=12px, 而p作為其子級,em則繼承content的字體高,也就是12px。所以p的1.2em就不再是12px,而是14.4px。
3. 重新計算那些被放大的字體的em數(shù)值。避免字體大小的重復(fù)聲明,也就是避免以上提到的1.2 * 1.2= 1.44的現(xiàn)象。比如說你在#content中聲明了字體大小為1.2em,那么在聲明p的字體大小時就只能是1em,而不是1.2em, 因為此em非彼em,它因繼承#content的字體高而變?yōu)榱?em=12px。
IE中的12px漢字:
完成 em轉(zhuǎn)換時還發(fā)現(xiàn)了一個詭異的現(xiàn)象,就是由以上方法得到的12px(1.2em)大小的漢字在IE中并不等于直接用12px定義的字體大小,而 是稍大一點。你只需在body選擇器中把62.5%換成63%就能正常顯示了。原因可能是IE處理漢字時,對于浮點的取值精確度有 限。本現(xiàn)象只發(fā)生在12px的漢字,英文不存在此現(xiàn)象。解決方法就是把style.css中的62.5%換 為63%。

2、rem特點

rem是CSS3新增的一個相對單位(root em,根em),這個單位引起了廣泛關(guān)注。這個單位與em有什么區(qū)別呢?區(qū)別在于使用rem為元素設(shè)定字體大小時,仍然是相對大小,但相對的只是HTML根元素。這個單位可謂集相對大小和絕對大小的優(yōu)點于一身,通過它既可以做到只修改根元素就成比例地調(diào)整所有字體大小,又可以避免字體大小逐層復(fù)合的連鎖反應(yīng)。目前,除了IE8及更早版本外,所有瀏覽器均已支持rem。對于不支持它的瀏覽器,應(yīng)對方法也很簡單,就是多寫一個絕對單位的聲明。這些瀏覽器會忽略用rem設(shè)定的字體大小。

舉例:

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

注意:

 選擇使用什么字體單位主要由你的項目來決定,如果你的用戶群都使用最新版的瀏覽器,那推薦使用rem,如果要考慮兼容性,那就使用px,或者兩者同時使用。

3、字體換算表

字號

pt

px

em

初號

42pt

56px

3.5em

小初

36pt

48px

3em

 

34pt

45px

2.75em

 

32pt

42px

2.55em

 

30pt

40px

2.45em

 

29pt

38px

2.35em

 

28pt

37px

2.3em

 

27pt

36px

2.25em

一號

26pt

35px

2.2em

 

25pt

34px

2.125em

小一

24pt

32px

2em

二號

22pt

29px

1.8em

 

20pt

26px

1.6em

小二

18pt

24px

1.5em

 

17pt

23px

1.45em

三號

16pt

22px

1.4em

小三

15pt

21px

1.3em

 

14.5pt

20px

1.25em

四號

14pt

19px

1.2em

 

13.5pt

18px

1.125em

 

13pt

17px

1.05em

小四

12pt

16px

1em

 

11pt

15px

0.95em

五號

10.5pt

14px

0.875em

 

10pt

13px

0.8em

小五

9pt

12px

0.75em

 

8pt

11px

0.7em

六號

7.5pt

10px

0.625em

 

7pt

9px

0.55em

小六

6.5pt

8px

0.5em

七號

5.5pt

7px

0.4375em

八號

5pt

6px

0.375em

到此這篇關(guān)于css中的px、em、rem、pt 特點和區(qū)別及換算詳解的文章就介紹到這了,更多相關(guān)css px、em內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標簽:赤峰 保定 延邊 泰州 萍鄉(xiāng) 大同 林芝

巨人網(wǎng)絡(luò)通訊聲明:本文標題《css中的px、em、rem、pt 特點和區(qū)別及換算詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    东乌| 乡城县| 清河县| 神木县| 栖霞市| 荣成市| 三都| 岳池县| 正阳县| 南汇区| 德化县| 海阳市| 曲沃县| 金塔县| 葫芦岛市| 拉萨市| 太保市| 溆浦县| 平江县| 瑞安市| 宣汉县| 洮南市| 稻城县| 白河县| 合作市| 本溪| 广南县| 永德县| 应城市| 赣州市| 伊宁县| 恩平市| 崇仁县| 刚察县| 十堰市| 行唐县| 塔城市| 新绛县| 白水县| 武山县| 邹城市|