CSS之字体图标 icon 的多种实现

html-css019

CSS之字体图标 icon 的多种实现,第1张

什么是icon?让我们先来看一个例子:

我们以为例子,图中看到的用圆圈起来的部分都是icon

这个时候你就想问了,这不就是几张图片么?

不,它不是图片,而是文字

什么??这怎么可能是文字,文字怎么会是这样的?...

正如你所看到的,现在市面上大多数网页使用的图标都是类似这样的形式,也有不少icon图标库可供我们使用

它的实现方式有:

首先我们需要了解:

如何让页面展示一个图标呢?我们可以把图标当成文字来操作,步骤如下:

下面是具体用法范例,大家可以一试:

或者

CSS Sprites在国内很多人叫css精灵(雪碧图),是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了。对于当前网络流行的速度而言,不高于200KB的单张图片的所需载入时间基本是差不多的,所以无需顾忌这个问题。

加速的关键,不是降低质量,而是减少个数。传统切图讲究精细,图片规格越小越好,重量越小越好,其实规格大小无所谓,计算机统一都按byte计算。客户端每显示一张图片都会向服务器发送请求。所以,图片越多请求次数越多,造成延迟的可能性也就越大。

例子:

引用该类 .. 然后在元素中逐一定义背景坐标 .. 以下为关键属性 ..

必须要限定容器大小符合背景图元素位置 .. 另外 .. XY轴是相对于整张图片的左上角来算的 .. 所以取值一定要算清楚。

需要把图标换成字体图标,阿里巴巴图标库可以把图标转成字体图标,自定义的图标需要用svg然后转换。

下载出来引用字体图标样式。在样式表中引用字体图标

@font-face {

font-family: "aui_iconfont"

src: url('aui-iconfont.2.0.ttf') format('truetype')

}//字体引用方式

arrow-left:before { content: "\e6eb"}//字体图标的命名和生成的字体

把字体图标的命名引用到对应的div即可<div class="aui-iconfont aui-icon-left"></div>生成如下效果图。

可以使用背景图设置,使用背景精灵图 把图标放在一张图片上面,通过定位位移来找到图片。

切成小图标 一个位置对应一个图标。

可以在阿里图库中下载相应的图标,下到本地后

第一步:拷贝项目下面生成的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>