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中文字体对应的英文名称一览表

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 大家都知道,在不同操作系统、不同游览器里面默认显示的字体是不一样的,并且相同字体在不同操作系统里面渲染的效果也不尽...
    陈_宣阅读 5,955评论 0 7
  • 一、概念 参考网页字体Serif和Sans-serif的区别及浏览器字体的设置CSS Font知识整理总结 1.F...
    合肥黑阅读 11,496评论 0 12
  • 大家好,欢迎大家光顾【设计练习室】,今天睡前陪伴大家的内容是有关于字体的知识。由于内容较多,你可能需要拿出10-1...
    一宏老师说阅读 6,091评论 0 4
  • 常见字体的中英文对应 Font-family:SimSun,"宋体" Font-family:"Microsoft...
    冰果2016阅读 7,744评论 0 2
  • 有一位老师,我们素未谋面,对他所知仅限于他是一所私立学校的招生老师… 古有三顾茅庐,孟母三迁…可是这位老师非亲非故...
    童年的小木马阅读 1,157评论 0 0