聊聊font-family的那些事
上週和後端同學聯調介面,我需要在頁面展示後端返回了一堆linux的輸出文字,樣式排版變形,慘不忍睹。
看到這個,我瞬間明白這是white-space預設值搞的鬼,順手就給設定成了white-space:pre。 可是問題解決了80%,空格是沒有自動合併了,但是還是沒有完全對其。
冥思苦想了一會,隨手敲了個font- ,想起來了好像是等寬字型的問題,於是設定font-family:monospace,總算看到想要的結果了,開開心心把bug單迴歸了。
今天就看看書,順便聊聊font-family相關的東西。
font-family,直面意思字型家族,所有font- 開頭的屬性都是和字型有關的。
一般我們會這樣設定:
body{ font-family:'PingFang SC', 'Microsoft Yahei',sans-serif; }
其實,font-family可設的值除了具體的字型名還有很多,serif、sans-serif、monospace、cursive、fantasy、system-ui,常用的就是前三個,含義解釋分別是襯線字型、無襯線字型、等寬字型。
襯線字型,就是說筆畫開始結束的地方有額外的裝飾,而且筆畫的粗細不一樣,無襯線字型,就是沒有這些個裝飾,筆畫粗細一樣。
作業系統不同,內建的字型也會不同,windows常見的內建字型有
宋體 |
SimSun |
黑體 | SimHei |
微軟雅黑 | Microsoft YaHei |
微軟正黑體 | Microsoft JhengHei |
楷體 | KaiTi |
新宋體 | NSimSun |
仿宋 | FangSong |
其中,宋體就是屬於襯線字型,微軟雅黑就屬於無襯線字型。
OS 作業系統內建字型有:
蘋方 | PingFang SC |
華文黑體 | STHeiti |
華為楷體 | STKaiti |
華文宋體 | STSong |
華文仿宋 | STFangsong |
華文中宋 | STZhongsong |
等等,其中PingFang SC屬於無襯線字型。可以看出蘋果內建的字型有很多,這只是列舉了常用的中文字型。
當我們設定了 font-family:'PingFang SC', 'Microsoft Yahei',sans-serif; 後,作業系統會從左往右在本地字型庫裡面尋找,如果有相應的字型則應用到web頁面。
等寬字型,一般中文字型都是等寬的,就是每個字元在font-seize相同的情況下佔據的寬度一樣,但是英文字元會出現問題,如iii 和 MMM ,同樣三個字元寬度明顯不一樣。
等寬字型在web中有什麼用呢?
1.有利於程式碼的呈現,一般編輯器或者web上需要呈現原始碼的字型都是等寬字型。
2.使用者體驗上,需要一眼就能看出輸入字元數是否一致時,或者類似我遇到的需要展示linux系統的輸出內容時。
好了,就先說這麼多。
參考張鑫旭的CSS世界。