字体图标Icon Font

前段时间研究怎样做字体图标,在网上查找诸多资料,诸多尝试,找到一套可以自己制作自己独立控制的制作流程,公司按照这套流程形成一套自己公司图标,本人目前所在公司已经在使用没有发现任何bug。下面是自己就个人研究和网上资料总结的字体图标相关知识和流程。看到这篇文章的同学,使用过程有什么问题可以互相学习,嘻嘻。。。。

一、字符图标的优点

字体文件小,减少http请求;

容易编辑和维护,大小颜色等可以通过css来控制;

兼容性好,支持大多数浏览器;

缺点:只能被渲染成单色。

                                          不能通过字符图标实现,颜色较多

                                          可以使用字符图标实现,颜色单一

虽然是多个颜色,但是可以通过css进行控制

二、字符图标的制作

工具:(ps),AI,FontLab Stadio,在线字体转化;

步骤:1.将图标保存成Photoshop eps格式(ico.eps);

         2.在AI中打开ico.eps,选中某个图标,复制;

            3.在FontLab中新建一组字体,双击字符进入编辑页(可以选择0-9,a-z,        A-Z),粘贴,调整图标到合适的位置大小(一定要注意基准线);

            4.所有图标都调整完毕后,保存gentrate font(.ttf根据需求选用格式);

            5.如需要其他字体格式,可通过在线转化工具,进行字体格式转换。                          (http://www.fontsquirrel.com/tools/webfont-generator)

三、注意事项

UI(图标制作阶段):

1.最好使用AI软件进行图标制作,若使用PS制作需提供eps格式文件,所需图标整合到一起,排列整齐,图标颜色一律采用黑色,透明背景,制作时大小统一48*48px,图标间距48px;

         2.图标路径一定要闭合,绘制弧线时保持弧度饱满,一条路径贯穿起来(若使用形状叠加,做到拐角处链接流畅)(不可用), (可用);

            3.删除不必要的路径,节点,保持画布清洁;

            UI是最重要的环节,后期字体的路径直接取决于图标的精细程度。

形成图标字体阶段:

            1.用AI打开eps,复制粘贴到FontLab后,若路径变形,回到AI放大后重复操作,直到路径和AI中的一样(可以锁定宽300px,高度自动);

         2.图标必须在A、D基准线内,否则会影响使用。

            3.结合参考线控制所有图标的尺寸一致,居中排列(600*600)。

            4.解决屏幕阅读器问题,方法一html元素添加aria-hidden='true'属性;

            方法二把内容写到css里面,

            font-family:yourFont;content:attr(data-icon);speak:none;  

            统一起来可以都添加上,经测试chrome、firefox、safari、微信、qq、UC都能正常显示。      

四、字符图标的使用

现在主流浏览器(包括IE6)都支持CSS3的自定义字体(@font-face),因此可以尝试使用font来替换图片展示网站的各种icon。但是各浏览器对于字体文件格式的支持不尽一致。目前主流浏览器对于icon font的支持如下:

IE:从IE4开始支持eot格式,IE9开始支持woff。

webkit/safari:支持TrueType/OpenType(.ttf),OpenType PS(.otf),iOS4.2+支持.ttf,iOS 4.2以下只支持SVG字体; Safari5.1+ 开始支持woff格式

Chrome:除webkit支持的以外,从Chrome 6开始,开始支持woff格式;

Firefox:支持.ttf和.otf,从Firefox 3.6开始支持woff格式;

Opera:支持.ttf、.otf、.svg。 Opera 11开始支持woff;

iPad, iPhone and Android 3.0+ 支持SVG fonts。

 

使用font-face声明字体:

@font-face {

    font-family: 'gome_icon';

    src: url('../fonts/gome_icon.eot');

    src: url('../fonts/gome_icon.eot?#iefix') format('embedded-opentype'),

         url('../fonts/gome_ico2.woff') format('woff'),

         url('../fonts/gome_icon.ttf') format('truetype'),

         url('../fonts/gome_icon.svg#icon') format('svg');

    font-weight: normal;

    font-style: normal;

}

方法一:把字符直接写到html文件里。

<div class="iconFont">1</div>

.iconFont{font-family:"gome_icon".....}

方法二:使用data-icon属性。

<div class="" data-icon="1"></div>

[data-icon]:before {

    display: block;

    font-family: 'gome_icon';

    content: attr(data-icon);

    speak: none;

    -webkit-font-smoothing: antialiased;//去除锯齿,实际测试无影响}

实际用途中经常图标和文字结合使用例如:

 

 <a href="" data-icon="2">影院</a>

[data-icon]:before {

    font-family: 'gome_icon';

    content: attr(data-icon);

    speak: none;

}这种情况用data-icon写法更方便。

综上,统一为使用data-icon的写法。

字体图标Icon Font的更多相关文章

  1. 字体图标 icon font

    Icon font icon font 指的是用字体文件代替图片文件,来展示图标.特殊字体等元素的方法. 应用场景: iconfont的优缺点 大小能够自由地变化 颜色能够自由地改动 加入阴影效果 * ...

  2. 如何在移动端app中应用字体图标icon fonts (转)

    原文: http://www.cnblogs.com/willian/p/4166757.html?utm_source=tuicool&utm_medium=referral How to ...

  3. 如何在移动端app中应用字体图标icon fonts

    How to use icon fonts in your mobile apps 在任何APP设计中实现可图形的矢量缩放最完美的方式是使用字体图标. 移动端的设计变的越来越复杂.原因在于多样的屏幕尺 ...

  4. AngularCli项目中添加字体图标(Font)详解

    本文主要讲如何在AngularCli生成的项目中使用字体图标. 一 SVG图标准备 将需要转换为字体图标的图片转换为SVG格式. 这个让项目视觉设计师搞定即可. 二 SVG图标转Font 可以通过Ic ...

  5. 字体图标 轻量级 Font Awesome

    今天呢,来推荐一款请轻量级 字体图标框架.Font Awesome 用法与bootstrap相似 打开网址.download下载,然后打开取到这两个,下载点这里,这个博客弄的挺好的. 找到exampl ...

  6. 字体图标:Font Awesome

    小图标 Font Awesome Font Awesome 字体为您提供可缩放矢量图标,它可以被定制大小.颜色.阴影以及任何可以用 CSS 的样式,是一款惊艳的字体图标! 可以前往官网进行学习 Fon ...

  7. CSS - icon图标(icon font)

    1. 概念 这个小红点是图标,图标在CSS中实际上是字体. 2. 为什么出现本质是字体的图标? 2.1 图片增加了总文件的大小. 2.2 图片增加了额外的http请求,大大降低网页的性能. 2.3 图 ...

  8. 在nuxt中引入Font Awesome字体图标库

    介绍 在element-ui框架中提供了一些图标样式,但是种类比较少,所以在这里提供一套更完善的字体图标库Font Awesome(官方文档),下面就开始介绍如何在一个nuxt项目中使用这套字体库. ...

  9. jQuery插件fontIconPicker配合FontAwesome字体图标库的使用

    同样先上效果图: 怎么样,是不是很好看,jquery fontIconPicker这个插件做的很不错,支持分类,搜索,还有分页功能,可以自定义分页,具体的使用方法我就不一介绍了,我只说一下如何使用fo ...

随机推荐

  1. Xilinx约束学习笔记(二)—— 定义时钟

    2. 定义时钟 2.1 关于时钟 为了获得最佳精度路径覆盖信息,必须正确定义时钟. 时钟要定义在时钟树的根 pin 或 port 上,称为 source point. 时钟的边缘应该由周期和波形进行组 ...

  2. Mysql5.6.47开放远程访问(修改远程访问密码)

    1.登录mysql mysql -u root -p 然后输入密码,登录进去mysql: 2.切换数据库 use mysql; 3.修改权限 GRANT ALL PRIVILEGES ON *.* T ...

  3. docker运行gerrit(代码审查工具)

    gerrit是什么? Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面. gerrit背景 Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面.利用网页浏览器,同一个团队的软 ...

  4. Qt Model/View(模型/视图)结构(无师自通)

    Model/View(模型/视图)结构是 Qt 中用界面组件显示与编辑数据的一种结构,视图(View)是显示和编辑数据的界面组件,模型(Model)是视图与原始数据之间的接口. GUI 应用程序的一个 ...

  5. iphdr结构

    包含在/usr/src/linux/include/linux/ip.h 1 struct iphdr { 2 #if defined(__LITTLE_ENDIAN_BITFIELD) 3 __u8 ...

  6. 三 MongoDB进阶

    1 Limit方法 概念:查询指定数量的数据,该方法接受一个数字参数作为查询记录数的数量 举个例子:查询集合col中最多2条记录数 2 Skip方法 概念:查询到的结果集中,跳过指定数量的数据,该方法 ...

  7. git rebase和git merge的区别

    前言:    平时工作中发现一般同事在同步远程代码的时候都是用git pull,其实git pull包含有两个操作,一个是fetch远程的代码,一个是将本地当前的代码和远程代码进行merge,即git ...

  8. 【JavasScript】折腾一个基础到不能再基础的顺滑抽奖页面

    前言 事情是这样的,作为一个意志力极低的人,最近一直在找寻提高意志力的方法. 然后决定试一试所谓的"建立奖励机制",也就是说,完成一项意志力挑战后给自己一些奖励(具体操作方法不在这 ...

  9. rabbitMq可靠性投递之手动ACK

    #手动应答#spring.rabbitmq.listener.simple.acknowledge-mode=manual#spring.rabbitmq.listener.simple.acknow ...

  10. 六、Abp vNext 基础篇丨文章聚合功能上

    介绍 9月开篇讲,前面几章群里已经有几个小伙伴跟着做了一遍了,遇到的问题和疑惑也都在群里反馈和解决好了,9月咱们保持保持更新.争取10月份更新完基础篇. 另外番外篇属于 我在abp群里和日常开发的问题 ...