您好,欢迎访问一九零五行业门户网

HTML中用自定义字体实现小图标icon(不是原作, 只是一个研究笔记)_html/css_WEB-ITnose

最近在做一个项目时, 研究了一下新浪微博的前端, 看到首页中那个图标了吗, 以前看到这类效果的第一反应就是用一个gif之类的图标做出来!!
但在研究的过程, 发现了一个小技巧, 注意那个em标签中的文本是e, 但显示出来一个类似icon的图标.
既然是html+css写出来的, 那么应该是由css控制显示出来的效果的.
其他的一些css基本没什么问题, 都理解了, 但只有这个 font-family, 强制设置成了 wbficonregular, 一般操作系统里应该没这个命名的字体吧!!
又乱点了一下谷歌的调试器, 发现有加载字体文件的!! 而且在其中一个字体文件中, 发现和首页图标一样形状的东西!!
百度一下, woff是一种字体文件!! 
于是我就想 应该也有软件可以制作自己的字体文件吧. 百度一下, 找到了名为 fontcreator 的软件!!
文件 -> 新建
字符集 , 字体样式 和 预定义轮廓我都按默认值弄,  其中预定义轮廓 选 包括轮廓, 是让新建的字体文件默认就有几个字符的了, 一般我都直接修改就行了!! 
例如我把 数字字符0 修改一下 在数字字符0 上右键-> 编辑
在出现的窗口, 点0的正中间 就可以拖动选框, 修改它的形状 (只为做实例)
=>
好了, 保存!!
接下来, 把刚刚做的字体用到html编写中去!!
只是做个实例, 还是把css写到html中吧
谷歌浏览器的效果
这个时候不要想完工了, 用万恶的ie打开看看
效果出不来 百度一下css自定义字体的兼容问题
来源 http://www.w3cplus.com/content/css3-font-face
一、turetpe(.ttf)格式:
.ttf字体是windows和mac的最常见的字体,是一种raw格式,因此他不为网站优化,支持这种字体的浏览器有【ie9+,firefox3.5+,chrome4+,safari3+,opera10+,ios mobile safari4.2+】;
二、opentype(.otf)格式:
.otf字体被认为是一种原始的字体格式,其内置在turetype的基础上,所以也提供了更多的功能,支持这种字体的浏览器有【firefox3.5+,chrome4.0+,safari3.1+,opera10.0+,ios mobile safari4.2+】;
三、web open font format(.woff)格式:
.woff字体是web字体中最佳格式,他是一个开放的truetype/opentype的压缩版本,同时也支持元数据包的分离,支持这种字体的浏览器有【ie9+,firefox3.5+,chrome6+,safari3.6+,opera11.1+】;
四、embedded open type(.eot)格式:
.eot字体是ie专用字体,可以从truetype创建此格式字体,支持这种字体的浏览器有【ie4+】;
五、svg(.svg)格式:
.svg字体是基于svg字体渲染的一种格式,支持这种字体的浏览器有【chrome4+,safari3.1+,opera10.0+,ios mobile safari3.2+】。
这就意味着在@font-face中我们至少需要.woff,.eot两种格式字体,甚至还需要.svg等字体达到更多种浏览版本的支持。
(这里, 我小小偷了一下懒, 我还是用ttf, 因为我还没找一个好点的ttf转woff的软件)
这其中, ttf 转eot, 需要一个小软件, 下载地址 http://download.csdn.net/detail/u010488325/6235387
在f.ttf旁边就多了一个f.eot,
用css hack把f.eot文件加进之前的字体引用中
看效果
总结一下, 
用这种方法给一些a标签 ul中的li标签 加一个icon, 其实很方便的, 而且只要制作的字体文件内容不多, 它的大小也就几k吧, 有些情况下相对于图片的icon好一些.
另外, 这种方法做的icon, 只能是纯色的, 像一些icon是有渐变效果的, 还是用图片会好一些?, 这个在开发的时候自行衡量呗!!
其它类似信息

推荐信息