详解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中background新增的4个新的相关属性用法介绍
Sep 26 HTML / CSS
使用CSS3美化HTML表单的技巧演示
May 17 HTML / CSS
纯css实现照片墙3D效果的示例代码
Nov 13 HTML / CSS
CSS3 按钮边框动画的实现
Nov 12 HTML / CSS
微信浏览器取消缓存的方法
Mar 28 HTML / CSS
多视角3D可旋转的HTML5 Logo动画
Mar 02 HTML / CSS
【HTML5】Canvas绘制简单图片教程
May 13 HTML / CSS
利用Storage Event实现页面间通信的示例代码
Jul 26 HTML / CSS
详解html5 postMessage解决跨域通信的问题
Aug 17 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
Nov 29 HTML / CSS
z-index不起作用
Mar 31 HTML / CSS
CSS3实现的3D隧道效果
Apr 27 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
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
js实现百度登录框鼠标拖拽效果
2017/03/07 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
2018/09/06 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
Python中使用partial改变方法默认参数实例
2015/04/28 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
python自动发送邮件脚本
2018/06/20 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
C语言面试题
2013/05/19 面试题
护理工作感言
2014/01/16 职场文书
中标通知书
2015/04/17 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
Python天气语音播报小助手
2021/09/25 Python
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL