国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > CSS > 正文

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

2024-07-11 09:07:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

概念介紹

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

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

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

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

1、em與px的問(wèn)題

px是何物?

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

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

PX特點(diǎn)

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

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

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

em是何物?

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

em特點(diǎn):

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

html { font-size: 62.5%; }

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

html { font-size: 63%; } 

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

p { text-indent: 2em; }

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

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

em有如下特點(diǎn):
1. em的值并不是固定的;
2. em會(huì)繼承父級(jí)元素的字體大小。

em重寫(xiě)步驟:

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

2、rem特點(diǎn)

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

舉例:

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

注意:

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

3、字體換算表

 

字號(hào)

pt

px

em

初號(hào)

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

一號(hào)

26pt

35px

2.2em

 

25pt

34px

2.125em

小一

24pt

32px

2em

二號(hào)

22pt

29px

1.8em

 

20pt

26px

1.6em

小二

18pt

24px

1.5em

 

17pt

23px

1.45em

三號(hào)

16pt

22px

1.4em

小三

15pt

21px

1.3em

 

14.5pt

20px

1.25em

四號(hào)

14pt

19px

1.2em

 

13.5pt

18px

1.125em

 

13pt

17px

1.05em

小四

12pt

16px

1em

 

11pt

15px

0.95em

五號(hào)

10.5pt

14px

0.875em

 

10pt

13px

0.8em

小五

9pt

12px

0.75em

 

8pt

11px

0.7em

六號(hào)

7.5pt

10px

0.625em

 

7pt

9px

0.55em

小六

6.5pt

8px

0.5em

七號(hào)

5.5pt

7px

0.4375em

八號(hào)

5pt

6px

0.375em

 


    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到CSS教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 泸州市| 东光县| 镇江市| 新绛县| 十堰市| 黄石市| 波密县| 余干县| 延长县| 五台县| 巴彦淖尔市| 高邮市| 孟津县| 固阳县| 神农架林区| 濮阳市| 孟津县| 泰顺县| 克什克腾旗| 慈溪市| 射阳县| 贡嘎县| 县级市| 郴州市| 塘沽区| 金昌市| 溧阳市| 隆子县| 甘孜| 利辛县| 洛隆县| 吉木乃县| 繁昌县| 肇东市| 大石桥市| 景宁| 浦县| 山西省| 铜川市| 娱乐| 抚顺市|