优点:1.减少了网页的http的请求,提高了网页性能。原理很简单,没有运用csssprite这种技术时,网页可能要加载十二个icons,但当运用了这种技术之后,十二个icons全部放在一个background-image内了。当我们加载网页的时候就只需要加载一个background-image就可以了。
2.” CSS Sprites能减少图片的字节,曾经比较过多次3张图片合并成1张图片的字节总是小于这3张图片的字节总和。“——源自<博客园>的“沫鱼的前端世界”。
缺点:1.首先一点是维护麻烦,当我们需要的十二个icons需要换其中几个或者增加或删除几个的时候,可能需要重新排版。当修改的icon与之前的不一致时则更几乎是要重新排版的。所以在这一点上,csssprite并不容易维护。不过一般人们运用这种技术的前提是设计的css盒子能够保证在相当长的一段时间内不会改变的。
2.开发时,在自适应属性下,csssprite可能会因为图片大小等属性的各种原因而导致图片出现断裂情况使得设计的页面效果十分难看。
3.同样是开发时,在设计页面的时候,运用csssprite技术需要用Photoshop去精准的定位到图片的长度,操作不难但是比较繁琐。
可以在阿里图库中下载相应的图标,下到本地后
第一步:拷贝项目下面生成的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:16pxfont-style:normal
-webkit-font-smoothing: antialiased
-webkit-text-stroke-width: 0.2px
-moz-osx-font-smoothing: grayscale}
第三步:挑选相应图标并获取字体编码,应用于页面
<i class="iconfont">&#x33</i>
font-class引用
font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题。
与unicode使用方式相比,具有如下特点:
兼容性良好,支持ie8+,及所有现代浏览器。
相比于unicode语意明确,书写更直观。可以很容易分辨这个icon是什么。
因为使用class来定义图标,所以当要替换图标时,只需要修改class里面的unicode引用。
不过因为本质上还是使用的字体,所以多色图标还是不支持的。
使用步骤如下:
第一步:拷贝项目下面生成的fontclass代码:
//at.alicdn.com/t/font_8d5l8fzk5b87iudi.css第二步:挑选相应图标并获取类名,应用于页面:
<i class="iconfont icon-xxx"></i>