vue項目中webpack打包后,字體失效

最近在項目開發過程中遇到一個很怪異的問題:開發環境中設置的字體樣式有效,使用webpack打包后失效,導致本地字體正常,線上字體異常,我用的是 “冬青黑體簡體中文”,

線上
本地

在控制臺,對比發現:
線上: font-family: \51AC\9752\9ED1\4F53\7B80\4F53\4E2D\6587;
本地: font-family: "\51AC\9752\9ED1\4F53\7B80\4F53\4E2D\6587";

原來開發環境的時候,"冬青黑體簡體中文" 被解析成unicode編碼并且帶著雙引號,是正確的
webpack打包以后,"冬青黑體簡體中文" 的雙引號被錯誤解析并多加了個反斜杠,導致字體不生效
控制臺里,將字體改成 "\51AC\9752\9ED1\4F53\7B80\4F53\4E2D\6587",就正常了,這就可以確定是webpack打包引起的問題

解決方法:
使用中文字體的英文編碼,如:font-family: "Hiragino Sans GB"

問題產生原因:
雖然一些常見中文字體,例如“宋體”,“微軟雅黑”等,直接使用中文名稱作為CSS font-family的屬性值也能生效,但為了規避亂碼的風險,建議使用字體的英文名稱。 還有一些中文字體,直接使用中文名稱作為 font-family的屬性值是沒有效果的,如“思源黑體”, “蘭亭黑體”等,需要使用對應的英文字體名稱才可以。

總而言之一句話,你要想使用中文字體,就必須要知道其對應的英文名稱。

附:font-family中文字體對應的英文名稱一覽表

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 大家都知道,在不同操作系統、不同游覽器里面默認顯示的字體是不一樣的,并且相同字體在不同操作系統里面渲染的效果也不盡...
    陳_宣閱讀 1,970評論 0 7
  • 一、概念 參考網頁字體Serif和Sans-serif的區別及瀏覽器字體的設置CSS Font知識整理總結 1.F...
    合肥黑閱讀 6,409評論 0 12
  • 大家好,歡迎大家光顧【設計練習室】,今天睡前陪伴大家的內容是有關于字體的知識。由于內容較多,你可能需要拿出10-1...
    一宏老師說閱讀 1,872評論 0 4
  • 常見字體的中英文對應 Font-family:SimSun,"宋體" Font-family:"Microsoft...
    冰果2016閱讀 2,745評論 0 2
  • 有一位老師,我們素未謀面,對他所知僅限于他是一所私立學校的招生老師… 古有三顧茅廬,孟母三遷…可是這位老師非親非故...
    童年的小木馬閱讀 172評論 0 0