css中Font字体小图标应用

我们知道在页面上载入小图标有多种方式,比如我们使用比较多的是css sprite背景图片定位,就是将很多小图标集成到一张大图,然后使用CSS定位背景。还有一种比较现代的方式是使用font字体图标,它利用@font-face原理载入图标字体库,然后调用图标。

使用css sprite方式非常方便,可以有很多色彩缤纷的图标,而且兼容性好,但是缺点就是图标不能缩放,或者说缩放了会失真,另外维护也不方便,修改一个图标要对整张大图就行修改,并且定位像素需要借助PS等工具确定位置。而使用图标字体库越来越受开发者青睐,它的维护简单,而且对图标缩放自由,随时都可以展示高清的图标,可以添加阴影效果和动画效果,设置也非常方便,唯一差点的就是图标颜色比较单一,就是设置的时候只能设置一个图标为单一颜色。下面我们来看下如何使用font字体小图标。
HTML

目前市面上有很多字体图标库,有收费的也有免费使用的。常见的有icomoon,Font-Awesome 以及 Glyphicon Halflings,Glyphicon在bootstrap下使用时免费的。当然国内阿里系也开放了自己的图标库。
本文讲解下使用icomoon字体库,我们可以在官网上选择喜欢的字体图标然后下载并部署到项目中,当然也可以自己制作图标然后上传到官网上。下载好的字体库,在一个fonts/的文件夹里。我们先布置好html结构:

<ul class="icons">
    <li class="sp"><i class="icon-spades spades"></i> 黑桃K</li>
    <li class="red"><i class="icon-file-picture"></i> 照片</li>
    <li><i class="icon-tablet"></i> iPad</li>
    <li><a href="#"><i class="icon-bubbles"></i> 评论</a></li>
</ul>

我们在上面的html代码中,给元素li里添加了<i>,然后加上class属性,class值就对应了css文件里的字体图标样式了。
CSS

首先我们使用@font-face命名字体名称,以及加载的字体文件,需要加载多个字体文件以兼容各浏览器和系统。然后定义class含有icon的样式,注意其中使用了抗锯齿处理,就是图片放大的时候不会出现边缘锯齿现象,然后使用伪类,设置content即图标内容。

@font-face {
    font-family: 'icomoon';
    src:    url('../fonts/icomoon.eot?42vx6u'); /* IE9 兼容模式 */
    src:    url('../fonts/icomoon.eot?42vx6u#iefix') format('embedded-opentype'),
        url('../fonts/icomoon.ttf?42vx6u') format('truetype'),
        url('../fonts/icomoon.woff?42vx6u') format('woff'),
        url('../fonts/icomoon.svg?42vx6u#icomoon') format('svg');
    font-weight: normal;
    font-style: normal;
}
 
[class^="icon-"], [class*=" icon-"] {
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
 
    /* 抗锯齿处理 =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
 
.icon-spades:before {
    content: "\e900";
}
.icon-file-picture:before {
    content: "\e901";
}
.icon-tablet:before {
    content: "\e902";
}
.icon-bubbles:before {
    content: "\e903";
}

然后,我们运行下html页面,是不是可以看到几个图标了,方便实用吧。
如果想给图标定义动画效果,可以使用css来实现。

.spinner{
    -webkit-animation: spinner 1s infinite linear;
    animation: spinner 1s infinite linear;
}
 
@-webkit-keyframes spinner{
    0%{
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
    }
    100%{
        -webkit-transform: rotate(359deg);
        transform: rotate(359deg);
    }
}

以上代码定义了图标旋转动画,我们可以结合js实现这样的效果:当鼠标滑上图标时展示图标旋转动画,当鼠标离开时,停止旋转动画。这个效果的代码大家可以参照demo中的源码。demo中我还加上了Font Awesome字体图标示例和Glyphicons字体图标示例,大家可以查看demo或下载源码了解。

时间: 2024-09-11 01:45:34

css中Font字体小图标应用的相关文章

CSS中Font的一些基本知识点归纳总结

1.什么是字体 字体是文字的外在形式,就是文字的风格,是文字的外衣.比如行书.楷书.草书,都是一种字体.同样一个字每个人写起来都会有差异,可以说每个人都有一套潜在的字体库.对于web页面来说,字体就是计算机上存储的一套文字显示方式.通过对文字进行一些特殊处理(比如末端加强)来提高不同环境中文字的可读性. 比如同样大小的文字,在不同字体下的可读性是不同的. 一般来讲,一款字库的诞生,要经过字体设计师的创意设计.字体制作人员一笔一划的制作.修改,技术开发人员对字符进行编码.添加程序指令.装库.开发安

举例详解CSS中的字体尺寸设置

  常用单位 在CSS中可以用很多不同的方式来设定字体的尺寸.一般来说,这些单位被分成两大类:绝对单位(absolute)和相对单位(relative). 绝对单位在大多数情况下是相对于某些实际量度而言的固定值,即是说它们一旦设定,就不会因为其他元素的字体尺寸变化而变化. 相对单位没有一个固定的度量值,而是由父元素尺寸来决定的相对值,它们的尺寸会根据与其相关的元素改变而改变. 下面是对这些单位的一个简单整理: 这里主要关注这几个单位:px.pt.%.em.rem和vw. 它们之间有什么区别? 从

在CSS中关于字体处理效果的思考

css 字体的处理在网页设计中无论怎么强调也不为过,毕竟网页使用来传递信息的,而最经典最直接的信息传递方式就是文字,所以,了解一点字体的基本知识对于设计来说还是非常重要的. 中文和英文的最大区别就是中文是方块字,英文是拼音文字,这对字体的处理的影响是巨大的.看看下面的图示就会发现,英文字体里的那些变化在中文字体里都弱化了. 作为中文的读者,习惯性的接受方块形状做为阅读的单元,其实对于眼睛来说,这是一种容易疲劳的方式,阅读的时候你的视线实际上是跟随整行文字的外形.看看这个例子. NOW I'VE

CSS中关于字体处理效果的思考

css 字体的处理在网页设计中无论怎么强调也不为过,毕竟网页使用来传递信息的,而最经典最直接的信息传递方式就是文字,所以,了解一点字体的基本知识对于设计来说还是非常重要的. 中文和英文的最大区别就是中文是方块字,英文是拼音文字,这对字体的处理的影响是巨大的.看看下面的图示就会发现,英文字体里的那些变化在中文字体里都弱化了. 作为中文的读者,习惯性的接受方块形状做为阅读的单元,其实对于眼睛来说,这是一种容易疲劳的方式,阅读的时候你的视线实际上是跟随整行文字的外形.看看这个例子. NOW I'VE

在 CSS 中关于字体处理效果的思考

css 字体的处理在网页设计中无论怎么强调也不为过,毕竟网页使用来传递信息的,而最经典最直接的信息传递方式就是文字,所以,了解一点字体的基本知识对于设计来说还是非常重要的. 中文和英文的最大区别就是中文是方块字,英文是拼音文字,这对字体的处理的影响是巨大的.看看下面的图示就会发现,英文字体里的那些变化在中文字体里都弱化了. 作为中文的读者,习惯性的接受方块形状做为阅读的单元,其实对于眼睛来说,这是一种容易疲劳的方式,阅读的时候你的视线实际上是跟随整行文字的外形.看看这个例子. NOW I VE

css中中文字体在css中表达方式

中文字体与英文.unicode 对应的太多,背也背不下来,就搜集了一张表格收藏记录一下,希望也是你想要的:  中文名 英文名 Unicode Mac OS 华文细黑 STHeiti Light [STXihei] 534E65877EC69ED1 华文黑体 STHeiti 534E65879ED14F53 华文楷体 STKaiti 534E658769774F53 华文宋体 STSong 534E65875B8B4F53 华文仿宋 STFangsong 534E65874EFF5B8B 丽黑 P

WEB设计中CSS样式表应用小技巧十四例

css|web|技巧|设计|样式表     CSS是Cascading style Sheets的简称,中文译作"层叠样式表单",我把它叫作"层叠样式表",我感到这样顺口一点,没别的意思.实际上它是一组样式.你可能对CSS这个名词比较陌生,实际上无论你用Internet Explorer还是 Netscape Navigator在网上冲浪,几乎随时都在与CSS打交道,在网上没有使用过CSS的网页可能不好找.不管你用什么工具软件制作网页,都有在有意无意地使用CSS.用

CSS中的font-size属性使用教程

  基本语法结构: Font-size+字体大小数值+单位 单词:font-size 语法:font-size : absolute-size | relative-size | length 取值:xx-small | x-small | small | medium | large | x-large | xx-large xx-small:最小 x-small:较小 small:小 medium:正常(默认值),根据字体进行调整 large:大 x-large:较大 xx-large:最大

深入理解css中的position定位和z-index属性

由于平时不太用到,所以过去写css的时候对于position属性的absolute. relative值理解比较模糊,对于z-index的层叠更是摸不着头脑,除了理解的因素外,各个浏览器的不同解析结果也是一个大问题.今天仔细阅读了一下css文档,总算是对盒模型的浮动.定位有了比较深刻的理解. 我们在实践中很有可能遇到这样的问题: 1.做一个横向导航,然后鼠标经过之后出现下拉菜单,那么这个下拉菜单的位置控制就是一个关键: 2.我们想在一个正常的页面布局中放入几个浮在页面上的气泡提示,这时既不想让气