【ttf 压缩】html网页引用中文字体,文件过大,加载缓慢的解决办法【字蛛】【web font】

【以下有部分内容引用的网络文章】
我们在日常需求中,经常会碰到视觉设计师对某个中文字体效果非常坚持的情况,因为页面是否高大上,字体选择是很重要的一个因素,选择合适的字体可以让页面更优雅。面对这种问题,我们通常以下方式来进行设计还原:

使用图片背景还原设计,即使用 photoshop 将文本图层单独导出成网页背景图片。

产生的问题

  1. 制作与维护成本很高。切图繁琐、高清屏适配繁琐、合并雪碧图更繁琐,后期修改更加繁琐。

  2. 用户体验差。导致网页不支持选中、复制、搜索、翻译、矢量缩放,也会影响视障用户使用读屏器操作网页。

  3. 带来更多带宽消耗。导出的图片体积随着文本面积增加,且字形无法重复利用,这消耗着大量的服务器资源

WebFont技术提供了在网页使用特殊字体的可能,从而避免用图片的方法。它的实现方法是通过CSS的@font-face引入字体。很多互联网公司已经率先采用了这种方法,比如Apple官网就是采用了自己的字体。Google也推出了免费的WebFont云托管服务,在国外网站自定义字体得到很好的应用。

在中文方面自定义字体却迟迟没有广泛应用,这是有什么原因呢?

中文WebFont的困境

中文字体体积大

英文字体文字部分由26个字母组成,所以字体文件通常不会太大;而中文汉字数量总共约有九万左右, 国标(GB)字库 有6763字, 而根据《现代汉语常用字表》统计数据,常用汉字也要有3500个左右。 中文字体文件通常都会几M的大小,参照现在中国的网络环境,显然不适合在项目中使用。

浏览器支持

不同浏览器对字体的支持也是不同的,没有一种可以支持所有浏览器的字体,这就要求我们针对不同的浏览器制作不同的字体。(N=Not supported, P=Partial support, Y=Supported)

table

针对以上的问题,我们可以得出中文WebFont要解决的问题是:压缩和转码。

Font-Spider中文WebFont解决方案的诞生:

为了不让工程与体验制约着设计师对字体选择以及创意的实现,我们利用业余时间解决了中文WebFont的两大问题即压缩和转码,于是便有了 Font-Spider (字蛛)的诞生。作为业界首款中文 WebFont 本地自动化压缩与转码工具,中文字体 web 化问题迎刃而解。它是一个 web 字体工具,通过自动化技术来压缩、转码跨平台的中文字体,让网页自由嵌入中文字体成为可能。

原理

  1. 爬行本地 html 文档,分析所有 css 语句

  2. 记录@font-face语句声明的字体,并且记录使用该字体的 css 选择器

  3. 通过 css 选择器的规则查找当前 html 文档的节点,记录节点上的文本

  4. 找到字体文件并删除没被使用的字符

  5. 编码成跨平台使用的字体格式

编码零干预

不需要改变 web 工程师现有的编码习惯、工程师可直接通过 css @font-face与选择器定义并应用字体。

压缩与转码

剔除没有使用的字符,通常可将数 MB 的字体压缩成数十 KB 大小,解决中文字体过大的问题,并编码成跨平台兼容的格式。

web 中文字体演示与工具使用请前往主页:http://font-spider.org/

【以上有部分内容引用的网络文章】


接下来说重点,其实上面的可以不看,哈哈。。。
最近在给公司的网站做改版,放到服务器上之后发现加载特别慢,查找原因,是ttf字体库导致的,一看10M,太大了,页面加载半天才能出来,于是在晚上需求解决方案,终于发现了一好办法【字蛛】,感觉不错,文件可以瞬间小很多,其实原理我觉得很简单,英文就26个字母,中国汉字那么多,字体文件肯定会很大,【字蛛】只不过是把你页面上要用的汉字都给提取出来重新生成一个新的字体文件,显然会很小,废话不多说,接下来上步骤:
1、【安装nodeJs】
这步我就不多说了,不是本文的重点,大家可以找度娘,一堆
这里要注意的事需要用到npm安装, 尼玛中国的网络你懂的,墙很高,怎么办,有办法
用淘宝镜像,命令如下:

首先打开nodejs客户端
输入一下命令:
npm config set registry http://registry.npm.taobao.org 
npm info underscore (如果上面配置正确这个命令会有字符串response)

命令行指定
npm –registry http://registry.cnpmjs.org info underscore

这样一来速度会快很多了

2、【安装字蛛】
输入命令
npm install font-spider -g
会看到一堆警告,没关系,到最后会出现如下显示
这里写图片描述

说明成功了

3、【运行】
安装成功之后就开始压缩了

我的目录是这样的
这里写图片描述

我的css文件是开头是这样的

这里写图片描述

这里要确保ttf文件一定要有,其他的不管

在你的html中也引用了相应的css文件

接下来就是最后一步了 生成新的字体库

nodejs 命令行输入
font-spider C:\Users\wangchao\Desktop\index*.html
也就是你的html完整路径 【*】 是通配符,表示会扫描所有的html文件
然后回车
这里写图片描述

这样就成功了,在你原来的字体文件目录下会多出相应的压缩之后的字体文件,发现小了很多吧
然后你再引用相关的新的字体文件就行了
到这里就O了,很简单。

阅读更多

没有更多推荐了,返回首页