zoukankan      html  css  js  c++  java
  • 图片转web字体库,如何制作web字体库

    最近项目上用到了很多svg图,设计师经常频繁改版,苦不堪言,于是就想到了把图片转成字体库来使用。

    使用图片的缺点: 
    1. 图片加载速度慢 
    2. 图片大小固定,无法调节 
    3. 当代码重构或者图片目录位置改变时,需要一个个修改,繁琐而且容易出错 
    字体库优点 
    1. 字体不会因缩放而失真(这根制作字体的图片有很大关系) 
    2. 使用方便,灵活,不受代码重构或者文件位置移动影响 
    3. 文字效果可以很容易地应用到你的图标上,包括颜色,阴影和翻转等效果。

    如何制作字体库 
    有很多工具可以制作字体库,本文就不在一一介绍,推荐使用阿里的iconfont,教程简单而且支持增量编译 
    1. 登陆http://www.iconfont.cn/ 注册一个账号 
    2. 选择图标管理-我的图标 

    3. 上传我们制作的svg图标 

    4. 点击我的项目,创建一个项目 

    5. 在我的图标中,批量操作-全选-添加到购物车 


    6. 在购物车中选择 添加至项目,添加到刚刚创建的项目中 

    7. 点击下载到本地,然后在html中引入即可 

    字体库引入有三种方式(取自iconfont官网介绍):

    unicode引用

    unicode是字体在网页端最原始的应用方式,特点是:

    兼容性最好,支持ie6+,及所有现代浏览器。 
    支持按字体的方式去动态调整图标大小,颜色等等。 
    但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。 
    注意:新版iconfont支持多色图标,这些多色图标在unicode模式下将不能使用,如果有需求建议使用symbol的引用方式 
    unicode使用步骤如下:

    第一步:拷贝项目下面生成的font-face

    @font-face {
      font-family: 'iconfont';
      src: url('iconfont.eot');
      src: url('iconfont.eot?#iefix') format('embedded-opentype'),
      url('iconfont.woff') format('woff'),
      url('iconfont.ttf') format('truetype'),
      url('iconfont.svg#iconfont') format('svg');
    }

    第二步:定义使用iconfont的样式

    .iconfont{
      font-family:"iconfont" !important;
      font-size:16px;font-style:normal;
      -webkit-font-smoothing: antialiased;
      -webkit-text-stroke- 0.2px;
      -moz-osx-font-smoothing: grayscale;
    }

    第三步:挑选相应图标并获取字体编码,应用于页面

    <i class="iconfont">&#x33;</i>

    “iconfont”是你项目下的font-family。可以通过编辑项目查看,默认是”iconfont”。

    font-class引用

    font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题。

    与unicode使用方式相比,具有如下特点:

    兼容性良好,支持ie8+,及所有现代浏览器。 
    相比于unicode语意明确,书写更直观。可以很容易分辨这个icon是什么。 
    因为使用class来定义图标,所以当要替换图标时,只需要修改class里面的unicode引用。 
    不过因为本质上还是使用的字体,所以多色图标还是不支持的。 
    使用步骤如下:

    第一步:引入项目下面生成的fontclass代码:

    <link rel="stylesheet" type="text/css" href="./iconfont.css">

    第二步:挑选相应图标并获取类名,应用于页面:

    <i class="iconfont icon-xxx"></i>

    symbol引用

    这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 这种用法其实是做了一个svg的集合,与另外两种相比具有如下特点:

    支持多色图标了,不再受单色限制。 
    通过一些技巧,支持像字体那样,通过font-size,color来调整样式。 
    兼容性较差,支持 ie9+,及现代浏览器。 
    浏览器渲染svg的性能一般,还不如png。 
    使用步骤如下:

    第一步:引入项目下面生成的symbol代码:

    <script src="./iconfont.js"></script>

    第二步:加入通用css代码(引入一次就行):

    <style type="text/css">
    .icon {
       width: 1em; height: 1em;
       vertical-align: -0.15em;
       fill: currentColor;
       overflow: hidden;
    }
    </style>

    第三步:挑选相应图标并获取类名,应用于页面:

    <svg class="icon" aria-hidden="true">
      <use xlink:href="#icon-xxx"></use>
    </svg>
  • 相关阅读:
    jquery toggle(listenerOdd, listenerEven)
    struts quick start
    hdu 1518 Square (dfs)
    hdu 2544 最短路 (最短路径)
    hdu 1754 I Hate It (线段树)
    hdu 1856 More is better (并查集)
    hdu 1358 Period (KMP)
    hdu 2616 Kill the monster (DFS)
    hdu 2579 Dating with girls(2) (bfs)
    zoj 2110 Tempter of the Bone (dfs)
  • 原文地址:https://www.cnblogs.com/lguow/p/9668562.html
Copyright © 2011-2022 走看看