关于@font-face
@font-face 是 CSS3 中的一个模块,使用 @font-face 可以自定义网页字体,即使用户的电脑没有安装某种字体。怎么用 @font-face 呢?你可能见过类似下面的代码片段,它可以让 @font-face 兼容所有浏览器。
@font-face { font-family: "SentyZHAO"; src: url("/fonts/SentyZHAO.eot"); /* IE9 */ src: url("/fonts/SentyZHAO.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */ url("/fonts/SentyZHAO.woff") format("woff"), /* chrome, firefox */ /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ url("/fonts/SentyZHAO.ttf") format("truetype"), url("/fonts/SentyZHAO.svg#SentyZHAO") format("svg"); /* iOS 4.1- */ font-style: normal; font-weight: normal; }
Webfont Generator - Font Squirrel
在上面的代码片段可以看出,要兼容性好的使用 @font-face,我们同时需要 eot 、woff、ttf、svg 格式的字体。常用的工具是 fontsquirrel ,一个字体生成器,可以在线生成 eot 、woff、ttf、svg 格式的字体,相信很多前端用过,具体用法可以官网试试。
Fontmin
第一个纯 JavaScript 字体子集化方案,一个百度出品的优秀工具。Fontmin 有什么用呢?
提供了 ttf子集化,eot/woff/svg格式转换,css生成 等功能,助推 webfont 发展,提升网页文字体验。
上面是官方的说法,通俗地理解有3个作用:
有时候,我们想给网站的 Logo 、 Slogan 、标题、活动页等的中文自定义字体,我们可以使用 @font-face 引入 Web 字体,但是完整的中文字体库都是 8M 10M ,加载性能非常差,所以我们提取部分我们使用到的字体,这样可以把字体文件变成几KB。
Fontmin 的用法很简单:
var Fontmin = require('fontmin'); var fontmin = new Fontmin() .src('fonts/*.ttf') .dest('build/fonts'); fontmin.run(function (err, files) { if (err) { throw err; } console.log(files[0]); // => { contents: <Buffer 00 01 00 ...> } });
详细介绍和用法可以看这篇文章: http://efe.baidu.com/blog/fontmin-getting-started/
Web-fontmin
好吧,扯了这么多,终于到文章的主题。
Web-fontmin 不是什么高大上的东西,一个基于 Fontmin 构建的字体工具,它的用处只有两个:
通俗的理解,Web-fontmin 是一个这样的工具:Squirrel + fontmin-app,他是两者的结合体。
Squirrel 只有单纯的生成不同格式的webfont,且不支持中文。Web-fontmin不单止可以转换格式同时支持中文,还可以提取字体,并且有更快的上传和转换速度。
Fontmin-app 主要作用是提取字体,需要下载安装,且不支持Linux。Web-Fontmin 拥有Fontmin-app的所有功能,并且在线即可用。
使用Web-fontmin: http://fontmin.forsigner.com/
Github 地址: web-fontmin
网页效果:
常用免费字体网站
推荐几个常用的字体下载王章: