最近更新: 2007-05-05

正體中文與簡體中文之網頁泛用字型設定

設定網頁字型的基本方式,請參閱 W3C CSS2 Fonts 規範內容。

微軟發行的大陸區 Windows 2k/XP 系统自带中文字型为「宋体(simsun/nsimsun)」、「黑体(simhei)」、「楷体(simkai)」、「仿宋(simfang)」。宋、黑体是微軟向中易中標(中易)購買的GBK字型,楷体及仿宋是向長城購買的GB2313字型。台灣區 Windows 2k/XP 系統內建中文字型為「細明體/新細明體 (Mingliu/PMingliu)」、「標楷體(DFKai-sb)」、「simsun」、「simhei」。明體及楷書是微軟向威鋒數位(華康)購買的Unicode字型;後兩個就是中易中標的黑體及宋體。上述之Unicode及GBK字型皆支援中日韓(CJK)字元集,不論指定那一個字型,都可以同時顯示正體中文字、簡體中文字、漢字及日文假名。目前看來,也是字數最完整的字型。

CSS 使用 font-family 指定網頁元件之顯示字型。font-family 可以列出多個字型,位於字型列表前方者具高優先性。網頁瀏覽器將依字型列表順序找尋系統中符合的字型。若找不到列表第一個字型再找第二個,第二個找不到再找第三個。依次尋找,若完全找不到字型時則採系統預設字型。

CSS 的字型名稱有兩種表示方式,一種是「全名」,另一種是「泛用族名」。「全名」是字型的完整名稱,如「標楷體」、「simhei」。若全名中包含空白字元,則必須使用引號括起名稱;如 "DFXingShu STD W5""cwTeX 楷書"。「泛用族名」則是由 CSS 預先定義之泛用名稱,常用者為 serif, sans-serif(參閱果正札記:《serif vs sans-serif), monospace 。使用泛用族名時不可用引號括起。通常我們將泛用族名寫在字型列表的最後一個。

在網頁中使用中文字型時,最大的困擾在於瀏覽器辯識字型名稱的方式不一致。此因中文字型往往具有兩個字型名稱,一為中文名稱,一為英文名稱。例如「標楷體」即為一例,其另有英文名稱「DFKai-sb」。仍以標楷體為例,若在 Windows 2k/XP 之「地區及語言選項」設定為「中文(台灣)」時, IE 只認字型的中文名稱「標楷體」;但若地區不是「中文(台灣)」時, IE 只認英文名稱「DFKai-sb」。故我們必須同時寫出字型的兩個名稱才行。

字型範例

<style type="text/css">
.dfkai-sb {
    font-family: "dfkai-sb", "標楷體";
}
.simhei {
    font-family: "simhei";
}
.simsun {
    font-family: "simsun";
}
.pMingliu {
    font-family: "pmingliu", "新細明體";
}
</style>
<p class="dfkai-sb">標楷體: 永,倉頡造字 AbcXyz</p>
<p class="simhei">黑体: 永,倉頡造字 AbcXyz</p>
<p class="simsun">宋体: 永,倉頡造字 AbcXyz</p>
<p class="pMingliu">新細明體: 永,倉頡造字 AbcXyz</p>
標楷體: 永,倉頡造字 AbcXyz
黑体: 永,倉頡造字 AbcXyz
宋体: 永,倉頡造字 AbcXyz
新細明體: 永,倉頡造字 AbcXyz
四種字型範例(圖形)

通用設定

<style type="text/css">
.kai {
    font-family: dfkai-sb, stkaiti, 標楷體, 华文楷体;
}
.serif {
    font-family: pmingliu, simsun, 新細明體, serif;
}
.sans-serif {
    font-family: simhei, sans-serif;
}
</style>
<p class="kai">羲之頓首快雪時晴佳想安善未果為結力不次。</p>
<p class="serif">羲之頓首快雪時晴佳想安善未果為結力不次。</p>
<p class="sans-serif">羲之頓首快雪時晴佳想安善未果為結力不次。</p>
楷書
羲之頓首快雪時晴佳想安善未果為結力不次。
羲之顿首快雪时晴佳想安善未果为结力不次。
Abcdef~01234
あいうえおカキクケコ
為胃體充育次
楷書字型範例(圖形)
襯線字
羲之頓首快雪時晴佳想安善未果為結力不次。
羲之顿首快雪时晴佳想安善未果为结力不次。
Abcdef~01234
あいうえおカキクケコ
為胃體充育次
襯線字型範例(圖形)
無襯線字
羲之頓首快雪時晴佳想安善未果為結力不次。
羲之顿首快雪时晴佳想安善未果为结力不次。
Abcdef~01234
あいうえおカキクケコ
為胃體充育次
無襯線字型範例(圖形)

以上示範在 Firefox 及 IE 中都可顯示同樣的效果。並且在兩岸中文Windows 2k/XP 系統中都可以呈現出近似的中文字體。

本文主要針對 Windows 2k/XP 使用者說明如何設定網頁字型,因為這些使用者通常不會自行安裝額外的字型,而且也無法設定字型別名。至於 Linux/FreeBSD 的使用者有多種中文字型可以選擇,而且可以透過字型管理程式設定字型的別名。故此處不說明針對 Linux/FreeBSD 使用者的網頁字型設定。

修訂一次。
更正事項: 我原本以為 simkai 是GBK字型,查了一下才知道我把 simkai 和 stkaiti 搞混了。simkai不提供完整的中日韓字符,只提供簡體中文字符。
GB2313字型與GBK字型之差異
GB2313字型之字元集(字符集)僅包含簡體中文字符。GBK字型則包含Unicode所規範的中日韓字符。GBK編碼基本上可一對一地與Unicode編碼對應。
標楷體的替用字型
簡體中文Windows系統中自帶之楷書(simkai)為GB2313字型,僅提供簡體中文字符。對正體中文網頁而言,不足以做為「標楷體」之替用字型;若是簡體中文網頁,則在font-family中應將 simkai 置於 dfkai-sb 之前。簡體中文Office另有自帶之华文楷体(stkaiti)為GBK字型,可做為「標楷體」之替用字型。對正體中文網頁而言,則在font-family中應將 dfkai-sb 置於 stkaiti 之前。
相關文章
樂多舊網址: http://blog.roodo.com/rocksaying/archives/3124027.html

樂多舊回應
未留名 (#comment-18043991)
Fri, 28 Nov 2008 01:01:48 +0800
你好,我想在網頁上用中文黑體+英文ARIAL,
我這樣設:font-family: arial, simhei;
結果在FF可以但在IE不行,請問有解法嗎?