Web端中文字体自定义@font-face优化方案

原创 2021-06-26 本文共2171个字,预计耗時6分钟 747次阅读
文章摘要:网页都知道可以自定义字体,有些需要突出设计感的网页,不一样的字体是必不可少的。对于css3而言这也是个容易实现的功能,通过@font-face 属性即可自定义字体,然后直接使用font-family使用。 /*自定义字体类型*/ @font...

Web端中文字体自定义@font-face优化方案

网页都知道可以自定义字体,有些需要突出设计感的网页,不一样的字体是必不可少的。对于css3而言这也是个容易实现的功能,通过@font-face 属性即可自定义字体,然后直接使用font-family使用。

/*自定义字体类型*/
@font-face {
  font-family: "newname";
  src:url("字体文件URL");
 }
/*使用*/
body{
  font-family: "newname";
}

英文的字体还好说,一共也就二十六个字母,大小写全加上52个字母的设计,其字体库文件大不了哪去,可中文的字体库文件就不一样,少说常用中文字达上千,如果想要得到统一的视觉效果,这一千个字的字体就要重新设计,那么这样的字体库文件就会比较大,例如思源黑体的字体文件就有10.3M啦(window下的TTF)。

思源黑体字体库大小

倘如再网页中用了思源黑体的字体设计网页,加载整个字体库文件显然会比较吃力,想象一下等待一个10m的文件下载,网页浏览者早就离开了。

对于一些网页设计而言,一些网页文字的设计又是必不可免的,那该怎么处理网页字体呢?

分两种情况来讲,一种是需要设计字体的文字是可控的,少量的;另一种是不可控的,比如新闻页都需要设计字体。

先说第一种,文字字数可控

这类比较常见是各种栏目标题,或者是单页里少数地方用到了设计的字体,这样的文字从个数和具体是哪些文字都是可以知道的,这样只需要从一个字体库文件里,把需要用到的字体提取出来,组成一个小字体库。

能够完成这一步,只需要一个工具-Fontmin,可以直接可视化实现提取字体库中文字生成一个小字体库。

可直接进去下载 http://ecomfe.github.io/fontmin/#app/

使用也很简单,先将整个字体文件拖到左下方框框,再将具体需要到的文字复制在左方的大框框里,最后点击生成即可,这样生成一个小的字体库文件,就可以@font-face引入作为自定义字体使用。

fontmin使用缩小字体库

第二种,字数无法控制

这类就是全局使用了设计字体,在网站的新闻页也使用了,你不能确定新闻会出现哪个文字,所以为了显示的统一,字体库只能是全体常用文字(也就是10m那般大小的字体库)。

对于这类的优化方案只能是尽量减少加载字体文件,或者减轻字体文件大小

减少加载的原理是如果浏览者电脑里本身就有该字体,则不下载,这就需要了解@font-face里src里的local,可以加载客户端的字体,前提是知道其字体名称。

而减少字体文件大小,是转换字体文件的格式,这就跟一般情况下jpg的图片会比png的小原理一样。
对于比较新的字体格式woff2/woff会比otf/ttf格式的文件小。举个例子,还是上面的思源字体,转化为woff2为4.73m,而woff为6.67m,对比10.3m的ttf也是减少了不少。

woff(woff2)是针对web的字体格式,各浏览器支持程度不一,woff2比woff压缩更好但是要求浏览器版本更高,具体支持浏览器版本可以自行百度。一句话,优先用woff2,其次woff,都不支持用otf(ttf)。

woff2字体文件大小

如果只有TTF文件怎么转换成woff(woff2)文件呢?只需一个网站,操作很简单,选择从什么格式转换为什么格式,等待完成下载即可。

在线转换即可。https://cloudconvert.com/

cloudconvert在线转换格式

网页实际开发中应用

当网站全站使用了某一种字体时,应该怎么处理呢?在实际种这种情况虽然比较少,但是仍不可完全避免,本人就在做网页时遇到,这种情况为了减少字体库文件。我的办法是,先去下载一个常用字库,大概3500个左右,github上个收集好了的

https://github.com/elephantnose/characters

中文常用字体库

下载下来得到一个TXT文件,然后在这个TXT文件里加上26个大小字母和0-9数字,这样基本上涵盖了会用到的文字,字母,数字;将其全部复制到Fontmin软件里,提取小的字库文件,这样就达到了减少字库文件的目的。

ps:如果后期在更新网站发现有文字先生异常,没有正确使用到字体,那么可以将这些字追加到TXT文件里,重复 复制-粘贴到Fontmin里去提取文字库;fontmin得到的文件没有woff2格式,如果觉得还不满意,可以再去上文提到的转换网站,在线转化为woff2格式。

常用字库追加文字

总结

对于网页字体,如果文字可控,用fontmin缩小字体库,文字不可控,转换格式,自定义字体时优先加载客户端字体,客户端没有加载顺序woff2-woff-otf,css代码可以参考下方:

@font-face { font-family: "wow"; /*自定义名字*/
	src: local("SOURCEHANSANSCN-LIGHT"), /* 优先local 加载本地*/
	local("SOURCEHANSANSCN"),
	url("SourceHanSansCN-Light.woff2") format("woff2"),  /* 优先 加载woff2*/
	url("SourceHanSansCN-Light.woff") format("woff"),
	url("SOURCEHANSANSCN-LIGHT.OTF");
}
版权免责申明
① 本站源码模板等资源SVIP用户永久不限量免费下载
② 所有资源来源于网络收集,如有侵权,请联系站长进行删除处理。
③ 分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。
④ 如果你有源码需要出售,可以联系管理详谈。
⑤ 本站提供的源码、模板、插件等等资源,都不包含技术服务请大家谅解。
⑥ 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
⑦ 在您的能力范围内,为了大环境的良性发展,请尽可能的选择正版资源。
⑧ 网站资源绝不做任何二次加密或添加后门(原版加密除外)
常见问题F&Q
需要积分的资源怎么下载?
您可以注册后签到等活跃动作获得积分,积分可下载,也可充值升级等级免费下载。
源码模板等文件安全吗?有没有后门病毒吗?
站内资源标有“已测试”标签的资源源码,表示已经在本地安装测试调试过才分享出来的,可以保证一定的安全;若不放心可以自行下载模板资源后使用D盾等查杀工具扫一遍确认安全。
本站网站模板等源码提供安装服务吗?
本站资源收集于网络并分享出来共同学习,不提供免费安装服务,模板源码安装等需要有一定熟悉度,小白用户可以下载资源后雇人安装调试。