使用自託管的開源字型來客製化你的網頁。
字型對許多計算機使用者來說可能都是很神秘的東西。舉個例子,你在製作好一張很酷的傳單之後,你需要將它送到某個地方去列印,結果發現,你設計的所有字型都變成了 Arial,這多半是因為列印店沒用安裝你設計用到的那些字型。不過,我們仍有很多方法來避免這種情況:你可以將這些使用特定字型的單詞轉換為路徑,你也可以將它封裝為 PDF,或是把開源字型封裝到你的設計檔案中,或者至少列出所需字型。不過,我們總會忘記一些事情,所以這仍是一個問題。
Web 上也有類似的問題。如果你對 CSS 有所了解,你可能會見過這種宣告:
h1 { font-family: "Times New Roman", Times, serif; }
這是設計師正在嘗試定義網站使用要用到的特定字型,如果使用者沒有安裝 Times New Roman 這個字型,便會回落到另一個字型;如果使用者也沒有安裝 Times 這個字型,便再次回落。它比使用圖片而不是文字更好一些,但是在沒有字型托管的情況下,這仍是一種棘手且不雅觀的方法。不過,在早期的網際網路時代,我們不得不這樣做。
線上字型的登場,把字型管理從用戶端搬上了伺服器端。如今網頁上的字型通常由伺服器為用戶端渲染,而不是要求瀏覽器從使用者的系統中查詢字型。谷歌和其它供應商託管了許多開源字型,網站設計師們可以很輕鬆的用 CSS 來參照它們。
不過,問題是,參照這些字型並不是不花費任何代價的。雖然參照它們免費,但是像谷歌這樣的巨頭喜歡跟蹤那些參照它們資源的網站,其中就包括了字型資源。如果你不想你的網站幫谷歌記錄每個人的活動,你可以自己託管線上字型。別覺得這很難,它其實是很簡單的,大概流程就是上傳字型到你的主機,再使用一個簡單的 CSS 便可完成。這樣做還有個好處,你的網站能更快地載入,因為它會在載入每個頁面的時候進行更少的外部呼叫。
首先,你需要一個開源字型。如果你沒有了解過那些令人費解的軟體協定,你可能會感到很疑惑,特別是很多字型看起來都是免費的。我們中應該很少有人有字型付費意識,但是他們卻在電腦上安裝了一些高價的字型。不過,由於授權協定,它使得你的電腦也許帶著一些 法律上不允許複製和再分發 的字型。像 Arial、Verdana、Calibri、Georgia、Impact、Lucida 和 Lucida Grande、Times 和 Times New Roman、Trebuchet、Geneva 以及其它的很多字型都是被微軟、蘋果和 Adobe 這種大公司所擁有的。如果你購買了一台預裝了 Windows 或 macOS 的電腦,你就獲得了使用這些字型的權利,但是你並沒有擁有那些字型,也沒有被許可上傳它們至伺服器(除非額外說明)。
幸運的事,開源熱潮在很久以前就席捲了字型界。然後就有了許多優秀的開源字型的合集和專案,比如 The League of Moveable Type、Font Library 以及 Omnibus Type,甚至還有一些來自 Google 和 Adobe 的字型。
常見的字型格式有 TTF、OTF、WOFF、EOT 等。因為 Sorts Mill Goudy 發行過 WOFF(網際網路開放字型格式,Mozilla 參與了部分開發)版本,所以下文中我會用它來做例子。當然,其它字型的方法也是一樣的。
假設你想在你的網站上使用 Sorts Mill Goudy 這個字型:
1、將字型檔案 GoudyStM-webfont.woff
上傳至你的伺服器:
scp GoudyStM-webfont.woff [email protected]:~/www/fonts/
你的主機可能帶有像 cPanel 這樣的圖形化工具,通過它們上傳也是一樣的。
2、在你網站的 CSS 檔案中,新增 @font-face
語句,新增後應該和這個差不多:
@font-face { font-family: "titlefont"; src: url("../fonts/GoudyStM-webfont.woff"); }
font-family
的值是你來決定的。這是一個易於理解的名字,它用於放在使用字型名的地方。我在這裡使用 “titlefont” 作為例子,是因為我希望它被用來顯示標題字型。你也可以使用 “officialfont” 和 “myfont” 這樣的名字。
src
值是你字型檔案的路徑。這是你伺服器上字型的路徑。在這裡,我用 fonts
目錄來作為範例,它和 css
在一個資料夾裡。你伺服器的檔案結構可能和我的不一樣,所以你需要調整一下這個路徑。記住一點,一個點意味著工作目錄,兩個點則代表父目錄。
3、現在,你已經定義了字型的名字和目錄,你可以在任何指定的 CSS 類或 ID 來呼叫它了。舉個例子,如果你希望以 Sorts Mill Goudy 字型來渲染 <h1>
,只需要在 CSS 規則中加入你自己的字型名稱:
h1 { font-family: "titlefont", serif; }
現在,你已經成功地託管並使用你自己的字型了。