字体图标的使用已经非常广泛了,在本片中讲解两种使用方式:
A.字体图标Unicode如何表示附上使用代码
1.html标签中使用
2.js中使用
3.canvas中使用
B.官方推荐:symbol使用
1.下载图标下载好后,大家可以看到这个文件夹;
打开以后(太友好了,全部给你写好):
2.将下载的文件放进需要的项目中
这堆麻烦的字体格式的出现,是因为各种浏览器对他们的支持程度不一样:
这里附上代码:可以直接考过去验证:
现在我们把代码写出来,然后进行一下验证,再来解释我自己看了以后疑惑的几个地方
附上代码:
1.symbol使用是什么意思?
2.fill:currentColor;是什么意思?
3.支持多色图标了我要验证一下
4.通过什么技巧,支持像字体那样,通过font-size,color来调整样式呢?
5.aria-hidden="true"是个什么属性?
有问题就可以一个一个解答了:
symbol:象征,标识的意思,这个symbol可不是ES6中的symbol,不知道是不是我百度的姿势有问题始终找不到symbol使用的精髓,所以我格式化了一下iconfont.js文件,然后我发现了我熟悉的html标签,我立刻去百度svgsymbol
那为什么官方还要给你这一段代码呢?其实是为了让你自定义的。接下来解决剩下的问题就可以消除我的疑惑了
1.虽然我知道了,fill是svg的一个属性,那么这个currentColor肯定是个关键字,可是这个关键字是指什么呢?
currentColor代表了当前元素被应用上的color颜色值。使用它可以将当前这个颜色值应用到其他属性上,或者嵌套元素的其他属性上。
你这可以这么理解,CSS里你可以在任何需要写颜色的地方使用currentColor这个变量,这个变量的值是当前元素的color值。如果当前元素没有在CSS里显示地指定一个color值,那它的颜色值就遵从CSS规则,从父级元素继承而来。
好那我立刻来实践一下:首先我们写好属性如下
既然currentColor代表了当前元素被应用上的color颜色值,那我们就把上面的color值放出来:
嗯,实践出真知,那为什么我不直接设置fill的值呢,我想应该是为了方便我们使用图标时设置颜色,因为color是个可继承的属性,即使没有设置,也可以继承父亲的颜色
验证成功,因为图标是公司机密,我就用马赛克拉。
现代的辅助技术能够识别并朗读由CSS生成的内容和特定的Unicode字符。为了避免屏幕识读设备抓取非故意的和可能产生混淆的输出内容(尤其是当图标纯粹作为装饰用途时),我们为这些图标设置了aria-hidden=“true”属性。通俗点说就是为屏幕识读设备过滤无关信息。
回顾一下使用部分:
.icon-dianyingpiao:before{content:"\e8ae";}
Unicode是一个字符集,他为每一个字符安一个编号,比如null,你的编号就是0这个编号在Unicode中叫做"码点"(codepoint)
U+0000=null//U+表示紧跟在后面的十六进制数是Unicode的码点。U+597D="好"现在Unicode已经存了10万多个符号了,他可以从U+0000~U+FFFF...目前除了Unicode字符集我们还有ASCII字符集、GB2312字符集等。
+16进制编码+;
+10进制编码+;
\+16进制编码
\u+4位16进制编码
\x+2位16进制编码
字符集是书写系统中使用的字母和符号的集合。例如,ASCII字符集、Unicode字符集。字符集中的字符作为一个或多个字节存储在计算机中。每个字节或字节序列代表一个给定的字符。
字符编码是将字符集转换为计算机可以接受的数字系统的数的规则