设计师的春天:中文WebFont解决方案Font-Spider(字蛛) - 腾讯ISUX

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

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

产生的问题

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

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

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

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

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

中文WebFont的困境:

1.中文字体体积大

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

2.浏览器支持

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

针对以上的问题,我们可以得出中文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/

项目实践

2014年接到的最后一个项目需求——腾讯云解决方案改版。新的腾讯云解决方案采用了全新的排版方式,更加简洁大气。标题部分字体更是采用了Adobe与Google所领导开发的开源字体——思源字体。面对项目中特殊字体的需求,快速整理了实现方案。腾讯云线上的解决方案已经采用了思源的特殊字体。

开源

我们把Font-Spider(字蛛)不断完善,并且回馈给开源社区,希望为中文WebFont的发展出一份力,让更多的中文站点可以使用精美的字体。

感谢你的阅读,本文由 腾讯ISUX 版权所有,转载时请注明出处,违者必究,谢谢你的合作。 注明出处格式:腾讯ISUX (http://isux.tencent.com/font-spider.html)

原文发布于微信公众号 - 腾讯ISUX(tencent_isux)

原文发表时间:2015-02-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏米扑专栏

WordPress 添加音乐盒

3007
来自专栏GIS讲堂

扩展graphiclayer实现多城市天气情况的展示

在上一节,实现了点击展示城市天气的效果,在本节,讲述通过扩展graphiclayer实现同时显示多个城市天气的展示。

572
来自专栏听雨堂

MapX5说明

把绘图功能嵌入到用户应用中的最简单、最经济的方法。 MAPINFO MAPX 是强大的ACTIVEX 组件 – 使用标准可视化程序工具可以很容易就整合到商业应...

1765
来自专栏开源FPGA

异步复位、同步释放机制——系统完美稳定

  白驹过隙,寒假已经余额不足,回头想想,也就是看了两本书,做了几个并不大的工程,看着QQ群里面一些大神们聊天,时不时有的没的还插几句,一句话没人理也是正常事情...

19810
来自专栏Python自动化测试

Frame在自动化中的处理

在自动化中,如果一个元素定位不到,那么最大可能是在iframe中,我们先了解frame。frame是html中的框架,在html中,所谓框架就是可以在同一个浏...

603
来自专栏pangguoming

Android平台GPS系统的应用开发

第一部分、前述: Android作为Google移动互联网战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。Google的目标是让...

4484
来自专栏腾讯社交用户体验设计

浅议内滚动布局 - 腾讯ISUX

973
来自专栏腾讯社交用户体验设计

[ISUX转译]iOS 9人机界面指南(一)下篇:UI设计基础 - 腾讯ISUX

832
来自专栏Pytorch实践

游戏推动微信小程序生态,跳一跳小游戏开发

2077
来自专栏林德熙的博客

win10 uwp 商业游戏 1.1.5 商店可以卖出数多个游戏修炼游戏相关文章

本文是在win10 uwp 商业游戏 基础上继续开发,添加一些无聊的游戏。 因为在发布几个月,下载量很少,小伙伴说游戏就玩不到几分钟就不想玩,于是我就想加入其...

490

扫码关注云+社区