这种思路是在一个国外的网站上发现的,设计者在网站中使用了很多小图标,但是并没有使用CSS-Sprite技术,而是使用了另外一种特殊的办法。那就是css3的font-face
技术载入了一个自己做的字体文件,在需要显示的地方直接打上调用的字符。
这种办法只适用于大量纯色,至于数量貌似没有上限,a-z+0-9+符号就够用了,狠一点,插入中文,动辄几千个单位…
font-face图标 VS CSS-Sprite图标
他们同样是把N多个图标合并到一次HTTP请求中,CSS-Sprite是我们经常用的方法,它几乎可以把所有不需要平铺的图片全部放进去,然后来定位。
而CSS-Sprite的弊端就是定位,想朽木这样做前端的,几乎天天跟background-position
打交道,XY一个像素也不能差,虽说有这方面的工具,但是工作量还是放大了好几倍。
而font-face则不需要定位,只要对照着字体编辑器,就可以知道哪个字符对应的哪个图标。使用起来非常方便
<style type="text/css" media="screen"> <!-- i{font-family:'自定义字体名字';color:#000;} i:hover{color:#0f0;} --> </style> <div> <li><i>A</i>某某某</li> <li><i>B</i>某某某</li> <li><i>C</i>某某某</li> </div> |
A/B/C就会自动变成我们字体中所对应的图标,怎么样,很方便吧,但是font-face有局限性,就是必须是纯色图标,因为字体只能给它附加color
属性来改变颜色。
从维护方面来说,font-face方法要方便的多,更换/添加/图标非常容易,而CSS-Sprite则不太容易管理,特别是图片和大小都要变更的时候。
推荐一个图标字体库 Font Awesome
好主意.