一种比CSS-Sprite更加方便在网页中嵌入大量图标的方法

1

这种思路是在一个国外的网站上发现的,设计者在网站中使用了很多小图标,但是并没有使用CSS-Sprite技术,而是使用了另外一种特殊的办法。那就是css3的font-face技术载入了一个自己做的字体文件,在需要显示的地方直接打上调用的字符。

这种办法只适用于大量纯色,至于数量貌似没有上限,a-z+0-9+符号就够用了,狠一点,插入中文,动辄几千个单位…

font-face图标 VS CSS-Sprite图标

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

共 1 条评论

  1. 回复

    好主意.

ghostry进行回复 X

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 必填字段 *

为何看不到我发布的评论?

正在提交, 请稍候...