详解CSS中iconfont的使用


Posted in HTML / CSS onAugust 04, 2015

初识iconfont

就算我们一开始不懂这个英文不懂是干嘛的,对于iconfont,英文从后往前读应该叫做:字体图标。这里面已经包含两个概念,首先必须是字体,第二,就是图标。我们都知道网页中的字体我们可以控制大小、样式、变形、拉伸、默认字体等属性,所以这个iconfont必须是以文字嵌入到样式中,所以想到的必须是font;既然是图标那么它就必须有一个路径来引入进来,首先我们一开始想到的img这个标签,既然又是文字又是图标,我们能想到的就只有这个@font-facecss3属性。

还有这个iconfont后来词语,并不是一开始就出现的,网页制作者或者学者想要叫起来更爽口所赋予的一个表现层的东西。

所以,当我们看见阿里巴巴的iconfont的图标教程如下:

第一步:使用font-face声明字体

CSS Code复制内容到剪贴板
  1. @font-face {font-family'iconfont';   
  2.     srcurl('iconfont.eot'); /* IE9*/  
  3.     srcurl('iconfont.eot?#iefix'format('embedded-opentype'), /* IE6-IE8 */  
  4.     url('iconfont.woff'format('woff'), /* chrome、firefox */  
  5.     url('iconfont.ttf'format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/  
  6.     url('iconfont.svg#uxiconfont'format('svg'); /* iOS 4.1- */  
  7. }  

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

CSS Code复制内容到剪贴板
  1. .iconfont{   
  2.     font-family:"iconfont" !important;   
  3.     font-size:16px;font-style:normal;   
  4.     -webkit-font-smoothing: antialiased;   
  5.     -webkit-text-stroke-width: 0.2px;   
  6.     -moz-osx-font-smoothing: grayscale;}  

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

CSS Code复制内容到剪贴板
  1. <i class="iconfont">#x33</i>  

效果如下
详解CSS中iconfont的使用

但是,Iconfont存在一些弊端:

    浏览器将其视为文字进行抗锯齿优化,有时得到的效果并没有想象中那么锐利。 尤其是在不同系统下对文字进行抗锯齿的算法不同,可能会导致显示效果不同。
    Icon Font 作为一种字体,Icon 显示的大小和位置可能要受到font-size、line-height、word-spacing等等 CSS 属性的影响。 Icon 所在容器的 CSS 样式可能对 Icon 的位置产生影响,调整起来很不方便。
    使用上存在不便。首先,加载一个包含数百图标的 Icon Font,却只使用其中几个图标,非常浪费加载时间。 如果是自己制作 Icon Font 以及把多个 Icon Font 中用到的图标整合成一个 Font 也非常不方便。当然使用阿里UX矢量图标库可以解决这个问题
    为了实现最大程度的浏览器支持,可能要提供至少四种不同类型的字体文件。包括TTF、WOFF、EOT 以及一个使用 SVG 格式定义的字体。如果是自己制作的话,可能要头疼死

HTML / CSS 相关文章推荐
css3中的calc函数浅析
Jul 10 HTML / CSS
CSS3教程(1):什么是CSS3
Apr 02 HTML / CSS
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
Oct 11 HTML / CSS
CSS3打造磨砂玻璃背景效果
Sep 28 HTML / CSS
浅谈three.js中的needsUpdate的应用
Nov 12 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
Mar 25 HTML / CSS
HTML5在canvas中绘制复杂形状附效果截图
Jun 23 HTML / CSS
canvas环形倒计时组件的示例代码
Jun 14 HTML / CSS
如何在Canvas中添加事件的方法示例
May 21 HTML / CSS
基于 HTML5 WebGL 实现的医疗物流系统
Oct 08 HTML / CSS
Html5定位终极解决方案
Feb 05 HTML / CSS
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
Mar 30 HTML / CSS
使用CSS3来匹配横屏竖屏的简单方法
Aug 04 #HTML / CSS
CSS3的一个简单导航栏实现
Aug 03 #HTML / CSS
使用CSS3和Checkbox实现JQuery的一些效果
Aug 03 #HTML / CSS
CSS3中的clip-path使用攻略
Aug 03 #HTML / CSS
利用SVG和CSS3来实现一个炫酷的边框动画
Jul 22 #HTML / CSS
CSS3中的content属性使用示例
Jul 20 #HTML / CSS
详解CSS3中border-image的使用
Jul 18 #HTML / CSS
You might like
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
PHP封装的数据库保存session功能类
2016/07/11 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
Move.js入门
2017/02/08 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
EM算法的python实现的方法步骤
2018/01/02 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
Python if语句知识点用法总结
2018/06/10 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
python Selenium 库的使用技巧
2020/10/16 Python
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
化学实验员岗位职责
2013/12/28 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
农业项目建议书
2014/08/25 职场文书
电气工程师岗位职责
2015/02/12 职场文书
辞职信范文大全
2015/03/02 职场文书