根據每個平臺不同字型的品質和產品本身的需求,儘可能精細地指定 font-family fallback 順序,避免落入瀏覽器和作業系統的預設配置,這是一種「優雅」的流派。已有的答案中有兩種方式:1. @黃玄 提到的寫長長的 font-family 來 fallback;2. @阿樹 提到的用 @font-face 來 fallback。多數情況下效果應該是接近的,但是用 @font-face 定義「虛擬字型」,有一個好處,可以自行定義字型的 font-style、font-weight 等屬性,進而解決一些實際遇到的問題。之前的一次 CSSConf 上聽豆瓣閱讀的 @滅滅 同學介紹如何對同一段 font-style: italic 的中西文混排文字設定僅西文斜體(中文字型一般沒有專門的斜體版本,瀏覽器合成的 oblique 樣式不僅醜,而且小尺寸時在低分屏下難以辨識):把斜體西文字型和正體(相對於斜體,非簡體)中文字型定義到同一個 font-style: italic 的 @font-face 中來使用,感覺相當巧妙。@font-face 裡還支援透過 unicode-range 來針對字元進行字型的配置,對於強迫症晚期來說更是福音(XX 字型裡的逗號好難看,我要換了它)。@Chen Yijun 的 漢字標準格式 不僅使用了 @font-face 來以「書體」定義了字型族,也用 unicode-range 來自定義了漢字標點符號的字型。除了強迫症的「超強控制」配置方法以外,也有人會覺得根據使用者配置、平臺預設字型來顯示,完全「放任自流」也是另一種「優雅」。比如 Google Search 的 font-family 就是 arial, sans-serif(當然也可能是基於省流量的考慮,這就不得而知了)。最後,還有一種,不管你啥平臺啥瀏覽器,請都給我用我的字型,你沒有我發給你。但是這個得有字型版權,所以一般人做不了。只有一些注重設計細節而且擁有字型版權的人可以這麼做(比如 Apple)。到底什麼算優雅,我也說不好,各有所愛吧。
根據每個平臺不同字型的品質和產品本身的需求,儘可能精細地指定 font-family fallback 順序,避免落入瀏覽器和作業系統的預設配置,這是一種「優雅」的流派。已有的答案中有兩種方式:1. @黃玄 提到的寫長長的 font-family 來 fallback;2. @阿樹 提到的用 @font-face 來 fallback。多數情況下效果應該是接近的,但是用 @font-face 定義「虛擬字型」,有一個好處,可以自行定義字型的 font-style、font-weight 等屬性,進而解決一些實際遇到的問題。之前的一次 CSSConf 上聽豆瓣閱讀的 @滅滅 同學介紹如何對同一段 font-style: italic 的中西文混排文字設定僅西文斜體(中文字型一般沒有專門的斜體版本,瀏覽器合成的 oblique 樣式不僅醜,而且小尺寸時在低分屏下難以辨識):把斜體西文字型和正體(相對於斜體,非簡體)中文字型定義到同一個 font-style: italic 的 @font-face 中來使用,感覺相當巧妙。@font-face 裡還支援透過 unicode-range 來針對字元進行字型的配置,對於強迫症晚期來說更是福音(XX 字型裡的逗號好難看,我要換了它)。@Chen Yijun 的 漢字標準格式 不僅使用了 @font-face 來以「書體」定義了字型族,也用 unicode-range 來自定義了漢字標點符號的字型。除了強迫症的「超強控制」配置方法以外,也有人會覺得根據使用者配置、平臺預設字型來顯示,完全「放任自流」也是另一種「優雅」。比如 Google Search 的 font-family 就是 arial, sans-serif(當然也可能是基於省流量的考慮,這就不得而知了)。最後,還有一種,不管你啥平臺啥瀏覽器,請都給我用我的字型,你沒有我發給你。但是這個得有字型版權,所以一般人做不了。只有一些注重設計細節而且擁有字型版權的人可以這麼做(比如 Apple)。到底什麼算優雅,我也說不好,各有所愛吧。