背景:公司产品的终端系统为 Ubuntu,用户操做都在 Chrome 浏览器上完成。可是界面上的一些中文字体出现了黑体和楷体混杂的状况,很是不美观。css
目标:统一界面显示字体。linux
经过 research,目前网上的主要方案有:1.删楷体+改系统字体 2.设置里改字体。 3.启动器的命令里加上”-disable-tabbed-options”,在任意输入框右键拼写检查选项。这三种方式。css3
验证了前两种方案,确实有效,但由于已有产品售出,因此放弃这些方案。git
而第三种方式过于生硬,且一样不符合需求,未实践验证。github
网页没有指定字体时,浏览器将调用系统默认字体配置。web
安装文泉驿字体:chrome
sudo apt-get install ttf-wqy*
复制代码
编辑字体设置vim
sudo gedit /etc/fonts/conf.avail/69-language-selector-zh-cn.conf
复制代码
而后在该文件里能够设置字体的优先级,最后重启电脑使配置生效。浏览器
在linux中安装/卸载字体bash
Linux 下的 chromium(chrome)默认字体并不继承系统字体。
没法在浏览器配置项里选择通用字体,因此选择直接更改配置项的源文件~/.config/chromium/Default/Preferences
(这个是chromium的目录,chrome理论上把chromium改成chrome便可)
shift+g
转到文件末尾处 :
"webkit": { "webprefs": { "global": { "fixed_font_family": "monospace", "sansserif_font_family": "scans", "serif_font_family": "scans-serif", "standard_font_family": "scans" }, "uses_universal_detector": true } }
复制代码
根据须要从新设置字体集及优先级。
其实,最普适的方案就是用font-face
引入自定义字体。将使用的字体文件传到服务器上,用font-face
加载到网页中。
而更简单一点是使用现有字体,但要考虑font-family
的字体应用顺序,尽可能不要出现字体未匹配,降级后显示效果特别差的状况。
最终采用的方案:
fonts.css
库,但后来发现其实项目中最后引用的fonts.css/dist/fonts.css
里其实就是几个指定了字体集的class
。.font-hei {
font-family: -apple-system, "Noto Sans", "Helvetica Neue", Helvetica, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", "ST Heiti", SimHei, "WenQuanYi Zen Hei Sharp", sans-serif;
}
.font-kai {
font-family: Baskerville, Georgia, "Liberation Serif", "Kaiti SC", STKaiti, "AR PL UKai CN", "AR PL UKai HK", "AR PL UKai TW", "AR PL UKai TW MBE", "AR PL KaitiM GB", KaiTi, KaiTi_GB2312, DFKai-SB, "TW\-Kai", serif;
}
.font-song {
font-family: Georgia, "Nimbus Roman No9 L", "Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif CN", STSong, "AR PL New Sung", "AR PL SungtiL GB", NSimSun, SimSun, "TW\-Sung", "WenQuanYi Bitmap Song", "AR PL UMing CN", "AR PL UMing HK", "AR PL UMing TW", "AR PL UMing TW MBE", PMingLiU, MingLiU, serif;
}
.font-fang-song {
font-family: Baskerville, "Times New Roman", "Liberation Serif", STFangsong, FangSong, FangSong_GB2312, "CWTEX\-F", serif;
}
复制代码
font-family
进行验证,效果最好的是.font-hei
。*{
font-family: -apple-system, "Noto Sans", "Helvetica Neue", Helvetica, "Nimbus Sans L", Arial, "Liberation Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Source Han Sans CN", "Microsoft YaHei", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", "ST Heiti", SimHei, "WenQuanYi Zen Hei Sharp", sans-serif;
}
复制代码
hai, 调研了半天,最后发现,其实解决方式很简单嘛😜