CSS長度單位:px和pt的區別

來源:互聯網
上載者:User

先搞清基本概念:px就是表示pixel,像素,是螢幕上顯示資料的最基本的點;而pt就是point,是印刷行業常用單位,等於1/72英寸。

這樣很明白,px是一個點,它不是自然界的長度單位,誰能說出一個“點”有多長多大嗎?可以畫的很小,也可以很大。如果點很小,那畫面就清晰,我們稱它為“解析度高”,反之,就是“解析度低”。所以,“點”的大小是會“變”的,也稱為“相對長度”。

pt全稱為point,但中文不叫“點”,查金山詞霸可以看到,確切的說法是一個專用的印刷單位“磅”,大小為1/72英寸。所以它是一個自然界標準的長度單位,也稱為“絕對長度”。

因此就有這樣的說法,在網頁設計中,pixel是相對大小,而point是絕對大小。

但這種說法其實還是有問題,先來看看下面的例子:

文字72px

 

 

文字72pt

 

 

文字96px

看出什麼名堂了嗎?

72px要比72pt小一些,但96px正好和72pt一樣大小

讓我們來調整電腦的設定:在案頭上右鍵 > 屬性 > settings > Advanced > General > DPI setting > 96 DPI。

試著改變設定,設為72DPI,重啟,再開啟瀏覽器看:72px已經等同於72pt了。為什嗎?

還是再做個實驗:分別用800×600和1024×768看剛才的例子,明顯高解析度下,文字就變小。而且,關鍵的是,無論用px還是pt,都會變小。pt並沒有如有些人所說,是“絕對”的,“固定”的。

但如果用印表機把這頁面列印出來,就可以看到:無論螢幕用什麼解析度,列印出來大小都是一樣的(這是當然的)。

首先要分清“螢幕效果”和“列印效果”這兩個概念。

在瀏覽網頁過程中,所有的“大”“小”概念,都是基於“螢幕”這個“介面”上。“螢幕”上的各種資訊,包括文字、圖片、表格等等,都會隨螢幕的解析度變化而變化,一個100px寬度大小的圖片,在800×600解析度下,要佔螢幕寬度的1/8,但在1024×768下,則只佔約1/10。所以如果在定義字型大小時,使用px作為單位,那一旦使用者改變顯示器解析度從800到1024,使用者實際看到的文字就要變“小”(自然長度單位),甚至會看不清,影響瀏覽。

那是不是用pt做單位就沒這樣的問題呢?錯!問題同樣出現。剛才的例子已經很清楚的說明,在不同解析度下,無論是px還是pt,都會改變大小 。以現在的電腦螢幕情況,還沒有一種單位可以保證,在不同解析度下,一個文字大小可以“固定不變”。因為這很難以實現也不是很有必要:全球電腦使用者以億來數,螢幕從14寸到40寸甚至更高都有,螢幕大小不同,解析度也不同,要保證一個字型在所有使用者面前大小一樣,實在是MISSION IMPOSSIBLE。另外,電腦有其自身的調節性,使用者可以自己來調節:1)在瀏覽器中調節字型大小;2)在剛才提到的顯示內容裡調節。

那在頁面設計中到底是用px還是pt呢?

我認為,這個並沒有什麼原則性差異,就看自己處於什麼角度思考了。

Mac機怎麼情況不清楚,在Windows裡,預設的顯示設定中,把文字定義為96DPI(PPI,微軟都將DPI和PPI混為一體,我們也就無須較真了)。這樣的定義,說明了:1px=1/96英寸。聯絡pt的概念,1pt=1/72英寸,可以得出,在這樣的設定中,1px=0.75pt,常見的宋體9pt=12px。在顯示器解析度不變的基礎上(比如現在常用的1024×768),1px大小也就固定不變,改變顯示設定,調整為144DPI,可以得出,1px=0.5pt,常見的宋體9pt=18px。原先用12px來組成的一個文字,現在需要18px來組成,px多了,文字就“大”了,更易閱讀了。

所以,px和pt的使用區別,只有當使用者改變預設的96DPI下才會產生:使用px定義文字,無論使用者怎麼設定,都不會改變大小;使用pt定義文字,當使用者佈建超過96DPI的值,數值越大,字型就越大。

(附公式:px = pt * DPI / 72)

對了,剛才還提到改變瀏覽器中文字大小的選項,也可以改變網頁的文字大小。但在這種情況下,使用px和pt都是無效的,因為這2個都是有實際“pixel”數值的單位,比如9pt是12px,大小固定。這裡要引用新的單位:em,其實就是%。因為當網頁中的字型沒有給出實際的px或pt定義的話,會有一個預設值:12pt即16px,對應瀏覽器中“字型大小”中的“中等”,以這個為標準,變大或縮小。(只適用於IE,在FF中,即便定義px或pt也都可以變大變小)

所以,從這個概念上看,em才是真正的“相對單位”(百分比嘛,當然是相對),而px和pt都是絕對單位(都有固定值)。

在網頁設計中,面向使用者的螢幕的基本單位是px,因此使用px作為單位是最簡單也最容易理解的,而pt也不過是通過了Windows的設定乘上了一個比率轉變成px再顯示,算是繞了個圈子。參考大部分大型網站,包括Adobe和Microsoft,都是使用px作為單位,而且在HTML中,預設的單位就是px,是不是也暗示著px是網頁設計的“內定單位”?

但在Word或Photoshop中,使用pt就相當方便。因為使用Word和Photoshop的主要目的都不是為了螢幕瀏覽,而是輸出列印。當列印到實體時,pt作為一個自然長度單位就方便實用了:比如Word中普通的文檔都用“宋體 9pt”,標題用“黑體 16pt”等等,無論電腦怎麼設定,列印出來永遠就是這麼大。又或者在Photoshop中,設定一個圖片中的某個美術效果的字型是72pt大小,然後分別將這張圖片設為300DPI和72DPI,再列印出來,就可以看出,這2個字型大小完全一樣,只是“清晰度”不同,300DPI更清晰。這是毫無疑問的結果。

最後整理一下所有出現過的單位:

px:pixel,像素,螢幕上顯示的最小單位,用於網頁設計,直觀方便;

pt:point,是一個標準的長度單位,1pt=1/72英寸,用於印刷業,非常簡單易用;

em:即%,在CSS中,1em=100%,是一個比率,結合CSS繼承關係使用,具有靈活性。

PPI(DPI):pixel(dot)per inch,每英寸的像素(點)數,是一個率,表示了“清晰度”,“精度”

 (後記,今後的發展趨勢,傳統的CRT顯示器將被LCD淘汰,而LCD有個特點就是解析度固定,而不像CRT那樣,一個17寸CRT可以有從640×480到1600×1200不等,但17寸LCD只有1280×1024這樣一個標準解析度,也是最大解析度,而且佔滿螢幕,不會像CRT那樣四周留黑邊,要靠人工調節。因此以後一台電腦看網頁,效果可以保持相對穩定。由於技術的發展,LCD的“精度”也越來越高,先來計算一下LCD的“精度”(PPI,DPI):

15寸LCD是1024×768解析度,對角線長為15寸(英寸),根據勾股定理,很容易可以算出,螢幕寬度是11.55英寸,再用1024來除,得出15寸LCD是88.68DPI,其餘的同理,看資料:

15"(1024*768): 88.68 DPI

17"(1280*1024): 96.42 DPI

19"(1280*1024): 86.27 DPI; 19"W(1440*900): 89.37 DPI

20"(1600*1200): 103.92 DPI; 20"W(1680*1050): 99.06 DPI

22"W(1680*1050): 90.05 DPI

24"W(1920*1200): 94.34 DPI

以前普通15寸CRT在800×600解析度下,大約是72DPI。讓我們來算算最常用的“宋體 9pt(12px)”,在各種顯示器下,實際可視大小是多少:

15"CRT(800*600): 12/72=0.167英寸,大約是4.2毫米,是很大很容易辨識的,這也是為什麼前幾年最流行的中文字型大小

LCD: 15": 0.135英寸,17": 0.124英寸,19": 0.139英寸,19"W: 0.134英寸,20": 0.115英寸,20"W: 0.121英寸,22"W: 0.133英寸,24"W: 0.127英寸

基本上,小於0.13英寸,對於視力不太好的或者年老的使用者,就會有閱讀困難,小於0.12英寸,即便一般使用者也會感覺吃力。所以,一般在這種情況下,要麼使用16px以上的字型大小,如果還是要9pt,那就改變顯示內容,間接來改變到16px以上也一樣。

再看看PDA上情況,Dell有款x50v,解析度640×480,螢幕大小為3.7寸,可以推算出,這個螢幕是驚人的224.70DPI,高的可怕,12px的字在裡面幾乎是難以辨認,因此換有另一種規格的字型來專門適合這些高解析度的場合,同時這樣的字型更顯得清晰圓滑,接近於傳統印刷。

相信不久的將來,案頭電腦系統也會如此,讓我們瀏覽網頁也能像翻閱雜誌那樣精美細緻、賞心悅目。)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.