關(guān)于字體的討論,其實(shí)無論是國外還是國內(nèi),都已經(jīng)有不少,可是我發(fā)現(xiàn)絕大部分的內(nèi)容或者有失偏頗,或者不夠全面,下面我試圖將自己一段時(shí)間內(nèi)的觀點(diǎn)總結(jié)一下,以求提出一個(gè)比較容易接受的 CSS 字體選擇的建議。
事關(guān)大小
字體的大小總是一個(gè)困擾人的問題,用絕對單位還是用相對單位?或者具體來說,用什么單位?ex? em? pt? px? 百分比? 讓我們看看 CSS 2.1 Spec 中的說明:
1、相對大小包括:em, ex, px 2、絕對大小包括:in, cm, mm, pt, pc 3、em 就是相對 font-size 制定的大小而言的,例如 margin: 1.2em 就是指設(shè)置 1.2 個(gè)字符寬度的 margin,當(dāng) em 本身用于 font-size 時(shí),指的是它所繼承元素的相對大小。 4、百分比也是相對 font-size 而言的。
因此我認(rèn)為,em 和百分比都不適合設(shè)置字體的大小,因?yàn)橄嗷プ儎?dòng)的因素太多了,修改一個(gè)地方就有可能影響很多其他的地方。ex 是根據(jù)拉丁字母的 x 的高度而言的,這不適合漢字的大小,所以也否決了。px 是根據(jù)當(dāng)前顯示設(shè)備的解析度而言的,同一個(gè) px 對應(yīng)不同的設(shè)備——比如屏幕或紙張——實(shí)際的大小會(huì)有一定差異。
所以我認(rèn)為,如果網(wǎng)頁中應(yīng)該存在作為絕對參照系的長度,那么 pt 和 px 應(yīng)該是首選,其他的長度根據(jù)這個(gè)絕對參照系,按照百分比或者 em 來變動(dòng)。
下面談?wù)劸W(wǎng)頁和印刷中大小造成的差異。99% 的網(wǎng)頁是用來在屏幕上閱讀的,而問題在于,屏幕的解析度要比紙張低得多,所以如果直接把字體按照紙張上印刷的那個(gè)大小顯示,肯定是看不清的,僅就英文字體而言,許多細(xì)微的點(diǎn)劃、襯線都沒法在那么低的解析度下表現(xiàn)出來,所以我們只能用專門設(shè)計(jì)給屏幕顯示的字體。
這些字體的優(yōu)劣是很難評述的,有一種看法認(rèn)為,盡管紙張印刷中都傾向于有襯線 (serif) 的字體比無襯線 (sans-serif) 的要易讀,但屏幕上無襯線的字體反而要好一些。所以微軟把 Verdana 吹捧為了最適合網(wǎng)頁使用的字體。我通常也偏向于使用 Verdana、Arial 多于 Times、Georgia。
對于中文字體的情況有所不同,中文字體在屏幕上的清晰顯示依賴的是點(diǎn)陣字體,或者簡單的說,就是微軟隨 Windows 提供的宋體和新宋體 (simsun & nsimsun),這套字體是華康公司 (Dynalab) 設(shè)計(jì)的,對 9pt 到 12pt 左右的字體都設(shè)計(jì)了對應(yīng)的點(diǎn)陣字體。其中使用得最廣泛的是 9pt, 10.5pt 和 12pt 的字體:
那么比這個(gè)大小要大的漢字呢?就要依賴操作系統(tǒng)的字體圓整 (anti-alias,以下簡稱 aa) 技術(shù)了,一般大家認(rèn)為,Mac OS X 和 Linux 下的 AA 要比 Windows 的 ClearType 好很多。然而不管怎么說,用太大的漢字是比較危險(xiǎn)的。
事關(guān)空間
今天新加一節(jié),本來計(jì)劃好的,昨天寫的時(shí)候又忘了。
這里的空間指的是 letter-spacing 和 line-height,也就是字間距和行間距。首先,良好的行間距是排版最重要的地方,你可能不能自由選擇字體,字號的選擇也受諸多限制,但至少行間距的選擇是可以完全由自己控制的。
所謂的 line-height,指的是兩行字基線 (base-line) 之間的距離,什么是基線?下面圖中的紅線便是,對于漢字,則應(yīng)該就是底部的水平線。
在印刷排版中,習(xí)慣用 pt 來指定行高,比如所謂采用 12/14pt 排版,就是字號 12pt,行高 14pt;而 Web 中似乎習(xí)慣用百分比來設(shè)置,這個(gè)見仁見智,只要自己看得順眼就行。但必須注意的是,瀏覽器默認(rèn)的行高一定是不夠的,尤其對于希望瀏覽者長時(shí)間閱讀的內(nèi)容,行高 - 字號至少要有 2pt 以上。更苛刻的排版學(xué)家通常推薦 3pt 以上,但畢竟 Web 上可以隨意一點(diǎn)。
但 letter-spacing 又是另一回事,我沒學(xué)過書法,漢字的間距不好多說,但英文字母的間距卻不應(yīng)該隨便調(diào)整,尤其不宜統(tǒng)一調(diào)整。因?yàn)閷?shí)際上,Type1、TrueType、OpenType 這些字體格式中都包含了一個(gè)叫做 kerning table 的東西,也就是字母間距的微調(diào)。為什么要做這種微調(diào)?兩個(gè)簡單的例子是 AV 和 We,如果不做微調(diào),“A”和“V”之間的距離就會(huì)過寬,“e”也不會(huì)像我們平常書寫的那樣和“W”契合得那么自然,下圖顯示了 Adobe Reader 中,使用 Sabon Next 字體時(shí)的 kerning 效果:
大部分的 User Agent,當(dāng)然也包括你的瀏覽器,都會(huì)根據(jù)字體的 kerning table 自動(dòng)做這個(gè)微調(diào)工作,但倘若你使用 CSS 來修改 letter-spacing,這個(gè)工作就白費(fèi)工夫了。所以我才建議不要隨便調(diào)整 letter-spacing。比如 WordPress 原來的 Classic Theme (Dave Shea 設(shè)計(jì),Matt 修改),就犯了這個(gè)毛病。
事關(guān)風(fēng)格
談到英文字體,可以扯出許多掌故,不過這里且說說 Web 開發(fā)有關(guān)的。
關(guān)于 Times New Roman,首先,與大家一般保留的印象不同,Times 不應(yīng)該是一個(gè)適合長時(shí)間閱讀的字體,尤其不適合書籍的閱讀,因?yàn)楸娝苤,Times 一開始是給報(bào)紙?jiān)O(shè)計(jì)的一種字體,而為了適應(yīng)報(bào)紙這種在劣質(zhì)紙張的快速印刷的環(huán)境,字體的襯線不得不夸張一些,否則細(xì)節(jié)很容易被油墨破壞,所以把 Times 用在書籍上其實(shí)是一種很不負(fù)責(zé)任的方式。
比這個(gè)更不負(fù)責(zé)任的是用 Times New Roman,Times New Roman 其實(shí)是一種壓縮 (Condensed) 了的 Times,比原來的 Times 更細(xì)長,更不易讀了。下面的一個(gè)比較應(yīng)該比較容易分辨出優(yōu)劣來:
Times 與 Times New Roman 的比較(點(diǎn)擊下圖可放大)
出處:jjgod的blog
責(zé)任編輯:moby
上一頁 下一頁 Web與排版學(xué)上的字體問題 [2]
|