預設字型樣式

前兩天介紹 TypeHelper.js 時,有提供了我現在用的字型樣式設定, Ethan 則提出了它的 建議 , Ethan 的建議如下:

html {
    font-family: sans-serif;
}

html.hasFontSmoothing-false {
    font-family: "新細明體", PMingLiU, serif;
}

Ethan 的想法應該是在確定沒支援 Clear Type 的話,就改用新細明體為預設字型,不然就用系統內建的黑體(sans-serif),他的建議給我不少想法,讓我重新確認了一下我的需求:

  • 如果系統支援 Clear Type,那就用微軟正黑體做預設字型(sans-serif)
  • 不支援的話,用新細明體(serif)
  • 假如無法判斷就當成沒有 Clear Type
  • 不支援 JavaScript 的情形當成沒有 Clear Type

然後考慮到系統環境,事實上只有 Windows 需要做這個判斷,OSX 不用說自然是都有,Linux 雖然不一定,但是它並沒有新細明體和微軟正黑體的選擇問題,所以只要考慮 Windows 的情形,有沒有 Clear Type 和有沒有安裝微軟正黑體,最後其實只有改一行就是了:

html {
    font-family: serif;
}

html.hasFontSmoothing-true {
    font-family: "微軟正黑體", "Microsoft JhengHei", sans-serif;
}

我的和 Ethan 的差別在於,分別是對於 JavaScript 有無的像下相容方式和他使用瀏覽器設定的黑體字型,或是強迫指定新細明體,我則是使用瀏覽器預設的明體字型,或是強迫指定微軟正黑體,我想選擇用哪個,就變成是網站主人的決定了。