关于iconfont

1. 从FONT-FACE说起



要想了解iconfont,得从一个新的css3规则说起。css3中,新增了一种样式规则,@font-face,这个规则可以用来引入自定义的字体,到客户端。以前,我们的字体只能听任客户端的。因为用户没有安装的话,我们强制要求显示也没有办法。

现在使用@font-face则可以引入在web服务器上存放的字体文件,从而达到,可以使用一些客户端浏览器上不存在的字体,等到浏览器去访问并渲染时,去下载font-face指定的字体。并命名为我们想要的字体。

如图1.1:

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8" />
        <style>
            @font-face {
                font-family: myfont;
                src: url(‘./myfont.otf‘);
            }
            .usefont {
                font-family: myfont;
            }
        </style>
    </head>
    <body>
        <h1 class="usefont">
            测试1
        </h1>
        <h1>
            测试2
        </h1>
    </body>
</html>

图1.1

上面的自已个h1中使用的,正是我们存在服务端的字体。由于各个浏览器的兼容性问题,

  • IE浏览器:EOT
  • Mozilla浏览器:OTF,TTF
  • Safari浏览器:OTF,TTF??,SVG
  • 歌剧:OTF,TTF??,SVG
  • Chrome浏览器:TTF,SVG

所以,我们需要准备多个格式的不同的字体文件。指代同一份字体。

@font-face {
    font-family: ‘icons‘;
    src: url(../font/curiconfont.eot#iefix) format(‘embedded-opentype‘),
         url(../font/curiconfont.woff) format(‘woff‘),
         url(../font/curiconfont.ttf) format(‘truetype‘),
         url(../font/curiconfont.svg?#iconfont) format(‘svg‘);
    font-weight: normal;
    font-style: normal;
}

后面的format指代的是墙面的资源是那种格式的。如想更详细了解,可以百度一下font-face。上面提到的例子可以在github上的hellofontface.html中找到。

2 什么是iconfont



既然font-face可以指定字体文件,那么字体长成什么样,不就是开发者说的算了么。我们可以描述一个字体,它长成这样:。其实,话说回来,文字不就是图像么。人类最早发明文字的时候就是按照图像来发明的。所以,我们可以把一些字符,描述成图像。在我们的网页上,当成图像来使用。这就是iconfont了。把一些零散的icon做成字体。我们调用文字的时候,渲染出来的就是icon图像了。

3 iconfont怎么用



我们来拿手机百度首页的字体做个小例子试试(如图2.1),我们新加入一个font-face,起名为myFont,在需要使用这份iconfont的部分,font-family设置为myFont,则这部分区域可以使用上该font文件:

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8" />
        <style>
            @font-face {
                font-family: myfont;
                src: url(‘http://m.baidu.com/static/index/iconfont/iconfont_c0634602.woff‘);
            }
            .usefont {
                font-family: myfont;
            }
        </style>
    </head>
    <body>
        <h1 class="usefont">
            
        </h1>
        <h1>
            
        </h1>
    </body>
</html>

图2.1

我们看到我们在网页上写了一个字符&#xe609,本来这个字符对应的文字应该是什么都没有:

但是,我们的iconfont中赋予了这个字符的图像:,于是,我们将这个字符所在的区域的字体,设置为我们的iconfont文件。于是浏览器就渲染出了这个字符在我们的font文件中,对应的图像。

这里要注意一下----&#xe609 ,是一个字符的html编码。这个字符在浏览器中没有定义,但是在iconfont中有定义。我们可以使用unicode码来唯一标识一个字符,将这个字符在我们的文件中画出来。这样就可以利用上iconfont了。

4 iconfont怎么做?



既然知道了怎么用,就要开始了解一下,如何制作一个iconfont了。国内有阿里巴巴的iconfont平台,可以选自己喜欢的图标导出iconfont。

http://www.iconfont.cn/

如果我们手里有一些图标,想转换为iconfont的话,可以直接使在线工具转换:

http://image.online-convert.com/convert-to-svg

设计师们也可以使用illustrator直接将图片导出为svg,具体导出方式可以参考如下链接:

http://www.w3cplus.com/svg/svg-files-from-illustrator-to-the-web.html

导出单个icon的svg后,可以上传至阿里巴巴的iconfont平台,与其他图标拼合成一张字体文件。

5 iconfont的利与弊



看到这里,一些同学肯定会问,那我们为什么要用iconfont呢?直接用图片不就好了。

这里我们分析一下使用iconfont的利与弊

5.1 iconfont的利

5.1.1 iconfont图像放大后,不会失真。

相信读者们没有见过文字在网页上放大的时候会失真的状况吧,因为字体是矢量的,字体的描绘只记录绘制的路径。而图片不是,我们如果把一张小图放大若干倍之后,会发现图像变得模糊了。因为图像是基于像素点的描述,放大后,之前图像的一个像素,被放大为多个像素。自然是会失真的

5.1.2 iconfont节省流量

在图片清晰度要求越高的情况下,我们的图片本身就会越大。这样非常耗费资源,而且,图像需要的色彩值信息,也会存储。这样也极大的浪费了空间。iconfont颜色由css决定,尺寸要求变大的话,则适应性的变大。传输的大小不会变大。

5.1.3 iconfont在颜色变幻方面很简单

试想,如果一个图标一开始是黑色的hover上去的时候变为蓝色的话,如果这个icon是用图片来实现的话,我们需要在hover的时候,更换背景图片,如果使用iconfont的话,则可以直接替换icon的color就行。

5.2 iconfont的弊

5.2.1 iconfont不能支持一个图像里面混入多重颜色

作为文字,是不会出现左边是红色右边是绿色的状况的。一个文字,是一个整体,统一的颜色。这个颜色就取决于css的color了。所以使用iconfont做图标的话,最好使用纯色的图标。

5.2.2 iconfont的使用没有使用图片那么直接,简单。

如果单论直接使用的话,图片还是比较便捷的。

时间: 2024-10-09 19:38:33

关于iconfont的相关文章

iconfont图标大全

1)不懂Iconfont-阿里巴巴矢量图标库(http://www.iconfont.cn/)请自觉百度,或者访问官网学习. 2)最近花了近5天的时间,收藏了近1000个iconfont的图标,并经过编辑.分类.排序等步骤,终于初步达到了想要的效果. 3)啥也不说了,直接上截图. 4)效果展示: 图1 图2 图3 图4 图5 图6 图7 图8 图9 图10 图11 图12 图13 图14 图15 图16 图17 图18 图19 图20 图21 5)资源文件截图 6)谁有意向拥有这些资源,可以扫描

Android程序中使用iconfont心得

1.关于iconfont iconfont既是icon又是font,具体来说应该是用font形式展现的icon.与传统图片格式的图标不同,这一种图标因为是以字体形式展现的,所以更改大小.颜色.背景颜色都非常方便. 2.使用方式 2.1 下载资源 资源来源:http://www.androidicons.com/ 根据引导找到下载链接.下载解压后找到iconfont/font,把里面的四个文件拷到Android项目中的assets目录下.找到glyphs/glyphs.html,因为之后会用到,所

前端工具----iconfont

在一张页面中我们经常会看见一些小的图标,这些图标小巧.意义明确,总之非常有用,难道他们是一些小图片吗.不错有的的确是小图片,但是在这里我将介绍另外一款工具那就是iconfont,我们可以把这些图标当做一个个文字来对待,因此我们可以调整它的大小和颜色.下面我来介绍一下如何使用. iconfont有两种引入方式,一是在html的style标签中引入iconfont官网生成的自动链接,二是将选中的字体图标下载到本地,利用link标签引入外部css文件. 在线使用: <style type="te

PC端使用iconfont图标

原来看过iconfont,但是没用过,今天尝试着用了一下!看看怎么用的: 第一步:下载 讲自己需要的图标(可以通过搜索查找)添加到暂存驾,以前是购物车!然后点下载或者存储到CDN. 这个图是偷的: 第二步:看看 下载后大概是这个样子: 里面有个demo.html,打开看看,上面详细讲解了图标的class.字符实体.当然了,还有使用方法 三.使用: 字符实体方式: HTML: <!DOCTYPE html> <html lang="en"> <head>

iconfont的引入方法

第一步:使用font-face声明字体@font-face {font-family: 'iconfont';src: url('iconfont.eot'); /* IE9*/src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */url('iconfont.woff') format('woff'), /* chrome.firefox */url('iconfont.ttf') format('tr

如何使用iconfont字体图标代替网页图片?

一.IconFont的优点 1.轻量性 可以减少http请求,可以配合html5离线存储做性能优化,有利于后期维护. 2.灵活性 可以自由变换IconFont大小(不失真),可以修改IconFont颜色,可以添加阴影,旋转,透明度等视觉效果. 3.兼容性 图标字体IconFont支持所有现代浏览器,包括IE低版本. 二.IconFont的缺点 1.图标字体只能被渲染成单色或者css3的渐变色: 2.设计自已的IconFont需要花费大量时间,也会增加前端重构的成本: 3.Firefox和IE9不

来自阿里妈妈的iconfont(转)

转自http://www.augsky.com/775.html 随便说说两者的优缺点 其实主要是说iconfont的优点和Font Awesome的缺点.-_-|||iconfont的图标库相当巨大,我在写上一篇文章的时候还是51794个,现在刷新之后图标数量已经是52090个了.如果这么大的一个库里面仍然没有你需要的图标的话,你也可以自己动手制作你自己的图标然后使用网站的在线生成工具来生成字体文件,分分钟就可以使用了. 除了拥有巨大的图标库之外,iconfont最值得推荐的原因还在于她使用上

!!图标(iconfont、fontawesome 等)

http://www.iconfont.cn/  阿里巴巴矢量图标库 iconfont http://fontawesome.io fontawesome图标 http://www.bootcss.com/p/font-awesome/#icons-new  2015-10-27 一.iconfont 图标库的使用: 第一步引入,第二步定义iconfont样式: /*第一步:使用font-face声明字体*/ @font-face {font-family: 'iconfont'; src: u

IconFont的使用方法

IconFont的作用就是用字体格式来取代图片.特殊字体的展示,用的比较多的就是一些纯色的图片,具体主要有当前CSS3属性里的自定义字体(@font-face)来实现. 1.先来说说它的优缺点: 优点:体积比图片小,可以变化大小和颜色,而图片则是不可以的. 缺点:由于是字体模式,所以只支持纯色,多颜色则是不支持. 2.如何使用: 2.1.字体的格式,不同的浏览器支持的字体格式是不一样的,具体如下: *webkit/safari:支持True Type/Open Type(.ttf),IOS4.2

Iconfont在移动端应用的问题

关于部分奇葩用户代理不显示字体图标 以酷派为代表的部分安卓手机自带浏览器.微信/QQ WebView 等用户代理无法正常显示 Icon Font,原因可能是这些用户代理无法正确处理伪元素 content 的五位数的 Icon Font 十六进制编码,详情参考 Iconfont 在移动端遇到问题的探讨,可以通过这个页面进行测试. 解决方式有两种: 将 Icon Font 编码限制在 4 位:Amaze UI 直接使用 Font Awesome,不可能去调整近 500 个图标的编码. 将 Icon