在网页中制作icon图标

用字体在网页中画icon图标

第一步:获取字体资源
IconMoon网站
https://icomoon.io

iconMoon中有很多免费小图标可用,还能设置下载图标的使用属性(通过网站中设立的按钮preferences来设置)。
它有“Use i”使用<i>标签来画图标;“Use Attribute Selectors”使用属性选择器;“Use a Class”使用class属性。

使用<i>标签时,会将font-family等字体值赋值给所有<i>标签。
使用属性选择器时,会将font-family等字体值赋值给[class^="icon-"],[class*=" icon-"]
使用class属性,会将font-family等字体值赋值给.icon

无论使用以上哪种方式,都要先用@font-face引入字体。

第二步:选择制作方式

方式1:CSS Sprite

也叫CSS精灵,是一项使用背景图片定位,在网页中画icon图标的技术。

它是把网页中一些零星背景图片整合到一张图片文件中,再利用CSS的背景图片定位到要显示的位置,因此也叫“图片拼合”技术。

1、好处:减少文件体积和服务器请次数,从而提高效率。

2、坏处:你需要预先确定好每个图标的大小及图标间的间距,且图标的样式不能再改变

3、图片:需要将图片保存为PNG-24的文件格式。

4、原理:

其实就是将所有的小图片做在一张图中,然后在每个<li>标签中都导入这张图作为背景图,然后使用background-position对图片进行定位(注意,在每个html元素中,背景图片都是从左上角开始显示的,显示不了的地方会被自动隐藏),定位到需要显示的图标位置,超出<li>标签宽高的部分就隐藏。 需要设置background-image和background-position的属性。

5、一般写法:

1 background-image:url(images/bgimage.gif);
2 background-position: 0 -80px;

(0是left的值,-80px是top的值,也就是图片向上隐藏了80px。这两个值可以自己根据需要小图标显示的位置而设立,可以取负值)

方式2:font字体 + HTML
使用字体库以文本形式在网页中画小图标,可用CSS控制其样式

1、优点:
(1)灵活性:轻松地改变其他CSS效果或使用color值改变图标的颜色
(2)可扩展:使用font-size可轻松改变图标大小
(3)图标是矢量的,缩放图标不会影响清晰度
(4)兼容性:字体图标支持所有一般写法:现代浏览器(包括糟糕的IE6)
(5)本地使用:通过添加制定字体到本地系统,可以再不同的设计和编辑应用程序中使用它们

2、一般写法:

 1 @font-face{
 2 font-family: "imooc-icon";
 3 src: url("../fonts/icomoon.eot"); /* IE9 兼容模式 */
 4
 5 /*.eot?#iefix是兼容IE6-IE8*/
 6 src: url("../fonts/icomoon.eot?#iefix") format("embedded-opentype")
 7 ,url("../fonts/icomoon.woff") format("woff")
 8 ,url("../fonts/icomoon.ttf") format("truetype")
 9 ,url("../fonts/icomoon.svg") format("svg");
10 font-weight: normal;
11 font-style: normal;
12 }
13
14 /*用于图标抗锯齿,光滑显示,写在所有图标元素的公共类里面*/
15 -webkit-font-smoothing: antialiased;
16 -moz-osx-font-smoothing: grayscale;
1 <!--html中的写法-->
2 <li><a href=""><i style="color: #efe0ce;" class="imooc-icon"></i></a></li>

3、写法说明:
<li>标签中的如这样的值是16进制数值,是每个icon小图标显示的时候的默认代码。刚开始得到的是f048;这样的值,需要自己加上&#x,浏览器才能识别。
注意有些字体库不是这样使用的,有些是用class属性来决定要显示的是哪个图标,而不是使用16进制数值。

方式3:font字体 + CSS

1、用@font-face引入字体,写法与方式2的相同

2、使用CSS内容:

before伪元素或者after伪元素
伪元素的content属性

*伪元素:创建一个虚假的元素,并插入到目标元素内容之前
  语法: 固定元素:伪元素{}
    固定类:伪元素{}

3、插入的内容由content属性来制定。

1 /*这里的.icon-music的class名称是可以随意起的,只需把名称复制粘贴到html代码中就行*/
2 .icon-music:before{
3 /*这里的16进制数值是代表小图标的内容。
4 在16进制的值前面,加上反斜线"\"进行转义*/
5 content: "\e605";
6 }

总结:三种方法对比

CSS sprite 兼容所有主流浏览器低版本

font+HTML 兼容所有主流浏览器低版本

font+css 不支持低版本浏览器

【参考资料】

慕课网   http://www.imooc.com/learn/243

特别鸣谢慕课网的至尊玉老师!

时间: 2024-10-13 19:55:45

在网页中制作icon图标的相关文章

字体在网页中画ICON图标

用字体在网页中画ICON图标有三种小技巧: 1.用CSS Sprite在网页中画小图标 实现方法: 首先将小图片整合到一张大的图片上 然后根据具体图标在大图上的位置,给背景定位.background-position:xpos ypos;相对位置为左上角的 0 0,向右向下取负值 实例部分的html代码及js代码(通过js来改变背景图的位置) 1 <ul class="sprite"> 2 <li> 3 <s class="s-icon"

在网页中使用icon图标:png、svg、iconfont

在写个人简历时,好多地方都要用到各式各样的icon图标,不仅是为了样式的美观,更是能够为访客提供很好的指引,比如: 放上这些图标,总比干巴巴的 ‘点击右侧进入详情’ 好⑧ (在做建立网站的时候,本来是想用svg一把梭的,简单好用,也不知道为啥突然觉得,哎,都用了这么久svg了,试试png吧:) 结果一发不可收拾,大概二十多张png图片,还没有用雪碧图,我脑壳痛) (还是建议用下面提到的svg或者iconfont+css/html吧) 方式1:png/jpg... 这个就不用多说了,放在span里

在网页中画Icon小图标

在网页中画Icon小图标. 现代网页中,绝大部分都采用了Icon小图标的方式.其积分大致分为三类,CSS Sprite,font+HTML,font+CSS. CSS Sprite:又称为CSS雪碧,把网页中零星背景图片整合在一张图片文件夹中,再利用CSS的背景图片技术定位到要显示的位置.优点:减少文本体积和服务器请求次数,从而提高效率. 知识点:background-image background-position(向下向右取的是负值). 特点:1,相对单个图标,节省文本体积和服务器请求次数

怎么在网页中加入ICO图标

1.首先制作一个16x16的icon图标,命名为cssbbs.ico(这里的名字可以随便改!),放在根目录下.2.然后将下面的代码嵌入head区:<link rel="icon" href="cssbbs.ico" type="image/x-icon" /><link rel="shortcut icon" href="cssbbs.ico" type="image/x-ico

网页中多个图标在一张图片上,使用css将各图标显示

现在的网页中显示很多图标算是常态,发现项目中页面上用到的图标都是单个图标单个文件,用的时候直接往页面上挂,这确实很常态. 如果,网站是挂在外网上,或者网速过低,又大量使用图标的情况下,由于浏览器和服务器的并发连接数是受限的,通常是4~8个,那么图标显示过慢或者超时的情况就会发生. 当然了,像采用CDN,或者按照浏览器的并发数对图片文件进行域名分散存储处理也是再好不过的,但不是都有这样的条件. 一般都会把图标文件做的尽可能小,尽管如此,1张50k的文件比起50张1k文件下载起来还是很有优势的. 那

bootstrap在input框中加入icon图标

<form class="form-horizontal"> <div class="form-group has-feedback"> <div class="username"> <span class="fa fa-user-circle-o fa-2x form-control-feedback"></span> <input type="te

html5中制作loading图标和图片预览代码详解

html5制作loading图的示例 代码如下: <!DOCTYPE html><html><head><title></title></head><body><canvas id = "canvas"></canvas></p> <p> <script>var Loading = function (canvas, options) {thi

网页中制作搜索框中遇到一些小问题

当你在制作一个搜索框加按钮的时候,比如<input class="header-text"/><input type="button" class="header-button"/>这样放置,文本框和按钮不管你怎么调样式也不在同一个位置,这个时候解决方式有两种: 1.外边包一层div,让文本框和按钮float:left,此时文本框和按钮都会紧贴div,也就会出现在同一水平线上的效果 2.待搜索

制作icon图标

png转svg https://www.vectorizer.io/images/upload.html 可能是格式问题,还真必须用这个网站,其它线上的上传到阿里iconfont变成空白 阿里iconfont https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=1056484&keyword= 原文地址:https://www.cnblogs.com/zhangzs000/p/10421632.html