幫你克服web字體選擇焦慮症

1.背景

前端時間產品經理問我,移動端web默認字體有哪些,哪些字體不侵權?我當時感覺這方面的知識很匱乏,只能回答出微軟雅黑和蘋方簡體,平常寫程式碼時,沒怎麼留意過font-family設置的字體屬性,今天有空,決定學習一下這個知識點。

2.字體族的分類

字體族主要分為6大類:分別是serif(襯線),sans-serif(無襯線字體),monospace(等寬),cuisive(草體),fantasy(夢幻),emoji(表情)。web平常我們接觸最多的就是襯線字體和無襯線字體。尤其是無襯線字體,文中將重點介紹。

2.1 serif(襯線)

serif字體的特點是在字的筆畫粗細會不同,始末端風格比較突出,常見的襯線字體有Times New Roman、MS Georgia,宋體,仿宋等。

圖片引自 serif,sans-serif,monospace,cursive和fantasy

2.2 sans-serif(無襯線)

Sans-Serif字體沒有這些額外的裝飾,筆劃粗細大致差不多,字形端莊,橫平豎直,常見的無襯線字體有Tahoma、Verdana、Arial、Helvetica、蘋方、微軟雅黑,黑體、幼圓、隸書、楷體等。

sans-serif(無襯線字體)和serif(襯線字體)的區別

圖片引自 如何優雅的選擇字體(font-family)

2.3 monospace(等寬)

等寬字體是指字元寬度相同的字體,通常用於編輯器以及技術文章的程式碼塊中,等寬主要針對西文字體,中文漢字天然等寬,Courier、MS Courier New、Prestige,多數中文字體是最常見的等寬字體。

2.4 cuisive(草體)

特點:像手寫的一樣,Caflisch Script、Adobe Poetica,徐靜蕾手寫體、迷你簡黃草、華文行草、少女體是手寫體的代表。

2.5 fantasy(夢幻)

特點:藝術字,主要用於圖片,頁面上用的少 。代表字體有 WingDings、WingDings 2、WingDings 3、Symbol,蘿蔔體

2.6 emoji(表情)

顧名思義,無需過多解釋。使用場景很好理解。

3.常見的作業系統自帶字體

3.1 sans-serif字體--西文

字體名稱
簡介
Helvetica 蘋果系統支援的一種西文無襯線字體,是蘋果生態中最常用的一套西文字體。Helvetica Neue是Helvetica字體改善版本,增加了更多不同粗細與寬度的字形。
Arial 是為了與Helvetica競爭而設計的無襯線西文字體,表現形式和Helvetica類似,在不同系統的瀏覽器都支援,兼容性非常好。
Tahoma 一種無襯線字體,間距較小,在不同系統的瀏覽器都支援,兼容性良好,可以解決Helvetica和Arial所為人詬病的缺點,比如大寫的 I 和小寫的 L 難以分辨。
San Francisco 蘋果於2017年推出一種無襯線字體,也是目前蘋果系統的默認西文字體,相比於Helvetica字體,San Francisco的字體風格更加簡潔,減少了一些修飾的細節,支援符號的整體居中,比如時間顯示,之前的 Helvetica 的冒號是不居中的。最低兼容版本:ios9、macOS10.11
Segoe UI windows系統下的一種無襯線西文字體,也是windows系統的默認西文字體。
Roboto Android系統的默認西文字體,也是一種無襯線字體

3.2 sans-serif字體--中文

字體 簡介
PingFang SC(蘋方-簡) 蘋果專為中國用戶打造的一個中文無襯線字體,在2017年和San Francisco一起推出,SC代表簡體,同時還有台灣繁體和香港繁體,整體造型簡潔美觀,是蘋果系統默認的中文字體。最低兼容版本:ios9、macOS10.11
Hiragino Sans GB(冬青黑體)、Heiti SC(黑體) 蘋果系統中較早的中文無襯線字體,為了兼容舊版macOS系統,我們一般用它們作為蘋方字體的fallback。
Microsoft YaHei(微軟雅黑) Windows系統默認的中文字體,也是一套無襯線字體。macOS上的瀏覽器大都預裝微軟雅黑,但不包括safari瀏覽器。ios和android系統不支援微軟雅黑,所以設置移動端字體時可以忽略微軟雅黑。
Noto Sans (思源黑體) Android系統的默認中文無襯線字體,由google推出的一款開源字體。
WenQuanYi Micro Hei(文泉驛微米黑) Linux系統下默認中文字體,一般為了兼容Linux系統才會設置這個字體。

3.3 serif字體--中文

  • 宋體: 一種中文襯線字體,windows 和 macOS都有支援,字體偏瘦,風格明顯。宋體也是windows XP及更早系統的默認中文字體。

3.4 表情字體

字體 介紹
Apple Color Emoji 蘋果產品的文字表情,在Mac和iOS系統中到處都可以看到,也是我們接觸的最多的Emoji表情。
Segoe UI Emoji Windows10系統中的Emoji表情,黑描邊風格,沒有蘋果的圓潤和質感。
Noto Color Emoji Google推出的表情,和蘋果的較為類似,更加扁平。

4.瀏覽一下圈內網站的font-family設置 (查看時間-2022.01.09)

4.1天貓

body {
    font: 12px/1.5 tahoma, arial, 'Hiragino Sans GB', '\5b8b\4f53', sans-serif;
}

備註:漢字宋體的unicode是'\5b8b\4f53'

4.2京東

body{
    font: 12px/1.5 Microsoft YaHei,Heiti SC,tahoma,arial,Hiragino Sans GB,"\5B8B\4F53",sans-serif;
}

4.3騰訊網

body {
    font: 400 1em/1.8 'Microsoft Yahei', 'PingFang SC', 'Avenir', 'Segoe UI', 'Hiragino Sans GB', STHeiti, 'Microsoft Sans Serif', 'WenQuanYi Micro Hei', sans-serif;
}

4.4百度

body{
    font-family: Arial,sans-serif;
}

4.5部落格園

body {
    font-family: 'PingFang SC','Microsoft YaHei','Helvetica Neue','Helvetica','Arial',sans-serif;
}

4.6掘金

html {
    font-family: -apple-system,system-ui,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial;
}

備註:

  1. -apple-system是system-ui的兼容寫法,只在ios和macOS上的safari、Firefox、webview等環境下支援。
  2. system-ui是一種通用字體系列,它選擇當前作業系統下的默認系統字體,它的優勢在於和當前系統使用的字體相匹配,可以讓Web頁面和App風格看起來更統一。

4.7簡書

body{
    font-family: -apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
}

評價:

  • 當字體名稱包含空格,則需要用雙引號或單引號包裹。京東,掘金,簡書有空格的字體名稱寫法不嚴謹。
  • 每個系統都會帶有無襯線字體,所以sans-serif一般放在最後作為兜底,sans-serif之後的字體都不會生效,除了Emoji字體。因此掘金的兜底字體寫的不太規範。

5 總結

5.1 字體族選擇

  • 在顯示設備上,襯線會讓文字變得難以辨認,sans-serif無襯線字體適合在線閱讀,是web頁面全局字體設置首選。
  • 襯線字體在列印的場景更容易閱讀,讓人更容易清楚區分不同字母。 serif 適用於列印頁面
  • monospace每個字元等寬,在頁面上佔據相同的空間,多用於頁面上的程式碼塊
  • fantasy和cursive適用特殊藝術效果展示的場景,在圖片或標題用的比較多。

5.2 字體使用原則

  • 先西後中
    中文網站涉及兩種文字類型:西文字體和中文字體,西文字體包括英文數字等,不包括中文,但是中文字體一般包括英文和數字,但西文部分不好看,為了達到更好的顯示效果,通常先定義西文字體,後定義中文字體。
  • 系統兼顧
    為了保證蘋果系統中使用更優雅的中文字體,優先聲明蘋方簡體, 對於不支援蘋方的低版本macOS,使用Hiragino Sans GB(冬青黑體)字體做兜底。
    如果需要兼容Linux系統,還需要添加WenQuanYi Micro Hei(文泉驛微米黑)字體。
    如果需要兼容不同平台的表情符號,一般在sans-serif後添加"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"等字體。
  • 優先使用system-ui
    system-ui使用當前系統的默認字體,讓web頁面和作業系統的風格統一,體驗更好。
  • 以sans-serif字體族兜底
    當所有的字體都找不到時,我們可以使用字體族名稱作為作業系統最後選擇字體的方向。一般將sans-serif放在字體的後面,非襯線字體在顯示器中的顯示效果更好。

5.3 推薦字體設置

遵照以上四條原則,推薦的字體設置為:

font-family: system-ui, -apple-system, Tahoma, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;

推薦理由:

  • 優先設置system-ui,讓web和app,pc的字體風格一致,-apple-system是ios和macOS上的safari、Firefox、webview上system-ui的兼容性寫法
  • 西文無襯字體優先選擇Tahoma,Tahoma字體在小字型大小下結構清晰端整、閱讀辨識容易,可以解決Helvetica和Arial所為人詬病的缺點,比如大寫的I和小寫的L難以分辨。在不同作業系統支援性好,所以作為首選字體,如果系統沒有預裝Tahoma,則使用Arial作為替代。Arial在ios和android上支援性很好。
  • 中文無襯字體優先選擇"PingFang SC","PingFang SC"造型簡潔美觀,是蘋果系統默認的中文字體。"Hiragino Sans GB"是蘋果系統早期的默認的中文無襯字體,為了兼容舊版macOS系統,用它作為蘋方字體的fallback。"Microsoft YaHei"是Windows系統默認的中文字體,也是一套無襯線字體。macOS上的瀏覽器大都預裝微軟雅黑。
  • 如果前面的字體都不存在,使用sans-serif兜底。
  • 最後大多數字體都有版權,而這些字體都是系統內置字體,不會涉及到侵權。

參考文章

Tags: