最近公司的设计人员想要把网站上面的小图标都改成iconfont,我也作了一篇PPT分享给你们,若是如今不记下来,可能过几个月就忘得一干二净了css
咱们知道,传统设计的思路是拟物化,就是在电子设备中,模拟真实的世界。好比咱们用的按钮,会有一些阴影的设计,让他看起来更像咱们生活中用到的按钮。可是随着数字化愈来愈深刻生活,拟物化的缺点也显现出来。首先就是人们不须要经过拟物来跨越现实世界和数字界面的鸿沟;其次就是信息的冗余,设计愈来愈专一于拟物的细节,反而没法凸显最直观的功能;最后就是复杂的拟物设计让人眼花缭乱,总体风格不够简洁。由此呢,新的设计理念应运而生,就是扁平化,他的基本理念是:去除冗余、厚重和繁杂的装饰效果,从让“信息”自己从新做为核心被凸显出来。最先走出扁平化设计的是微软,在10年推出的window phone7 ,就用了大量的简单形状,移除了复杂的样式和纹理。三年之后iOS7也采用了这种设计,自此扁平化设计开始在数字化设计用大规模的使用。web
想要在页面展示一些图标,传统的方式使用的就是图片,可是使用图片存在许多的弊端,主要表现是下面三个方面chrome
为了解决以上的问题,一种新的图标显示方法应运而生,那就是iconfont。iconfont,顾名思义,就是icon + font,即以字体的方式来显示图标,这个十分好理解,由于中文有时候也像一个个小图形。iconfont能够完美解决以上的问题,并具备如下的优势浏览器
iconfont一共有三种使用方式,具体参照阿里妈妈图标库的官方文档app
目前咱们系统采用的是这种方式,这种方式的好处就是完美适配IE8,核心的思想就是这两段代码svg
@font-face { font-family: "iconfont"; src: url('iconfont.eot?t=1511278425746'); /* IE9*/ src: url('iconfont.eot?t=1511278425746#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAABLQAAsAAAAAHGQ') format('woff'), url('iconfont.ttf?t=1511278425746') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ url('iconfont.svg?t=1511278425746#iconfont') format('svg'); /* iOS 4.1- */ } .iconfont { font-family:"iconfont" !important; font-size:16px; font-style:normal; -webkit-text-stroke-width: 0.2px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
没啥好说的和Unicode差很少,只不过用:after伪元素使用,我试了一下,IE8是支持伪元素的。可是不支持大小的修改,因此这种方式只能兼容IE9及以上的方式性能
传说是将来发展的趋势,能够展现多种颜色的图标。核心的代码是下面这段字体
.icon { /* 经过设置 font-size 来改变图标大小 */ width: 1em; height: 1em; /* 图标和文字相邻时,垂直对齐 */ vertical-align: -0.15em; /* 经过设置 color 来改变 SVG 的颜色/fill */ fill: currentColor; /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 normalize.css 中也包含这行 */ overflow: hidden; }
9月的时候iconfont团队作过一次改版,他们应广大技术人员的要求,将woff文件默认转换成了base64的格式,由于base64将文件直接编码因此能够减小一次http请求。原则上IE8 是支持base64的,可是IE8对base64的解码有限制,若是进行64位编码后大于32K,则超过32K的部分不能被解码,我作过实验,就是使用只有两个图标生成的base64,十分短,放在IE8下面是好用的,可是实际项目的文件图标不少,就没办法正常的显示了。因而我到阿里的网站跟他们说明了状况,但愿他们可以加一个关闭base64的功能,可是阿里的人员跟我说,天猫已经全线放弃IE8了,但愿咱们也放弃IE8.因此目前只能手动的将base64转为文件的地址,并且后续估计也要一直如此网站
iconfont改完的页面肉眼可见的美观了很多,书写也十分的方便,目前主流的网站大部分都已经使用iconfont了,相信不久的未来他会遍及互联网的每一个角落编码