博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Font Icon 实践
阅读量:6910 次
发布时间:2019-06-27

本文共 1484 字,大约阅读时间需要 4 分钟。

刚接触font icon,所了解得不深,仅仅作学习笔记。

个人理解的font icon是以字体文件取代图片文件,来代替小图标。

好处是能基本兼容所有的主流浏览器,不再为IE6不兼容半透明图片而烦恼。并且因为是字体,所以在移动开发当中拉伸和缩放中都不会影响icon的质量。

凡事有弊有利,font icon因为是文字,所以暂时只能是单一地填充颜色,这种情况随着这种技术的应用越来越广泛或许会有改观。

 

工具:

把矢量图用AI或者psd导出svg或者eps,利用FontLab生成各种格式的字体文件。在此推荐线上字体制作平台:

 

前端应用:

必须先用@font-face声明字体:

@font-face {
font-family: 'icomoon';  src: url('fonts/icomoon.eot'); /* IE9*/  src: url('fonts/icomoon.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */  url('fonts/icomoon.woff') format('woff'), /* chrome、firefox */  url('fonts/icomoon.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/  url('fonts/icomoon.svg#svgFontName') format('svg'); /* iOS 4.1- */  font-weight: normal;  font-style: normal;}

很多浏览器不会跟进文件的后缀名去自动识别字体格式,所以,format帮助浏览器识别字体格式,不能识别的时候加上#号后面是文件的备用名称。

 

定义使用fonticon的样式:

[class^="icon-"], [class*=" icon-"] {
  font-family: 'icomoon';  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;}

 

利用CSS3伪元素插入对应的字符编码:

1  .icon-icons:before {2 3   content: "\e602";4 }

 

最后应用到页面中:

1 

 

但有时候需要在html直接插入,所以就需要把生成的字符编码\转换成&#x。例如:\e602 转换成  即可使用:

 

可是,IE9以下版本并不兼容CSS3伪元素,所以并不能通过base64置于样式当中。所以,在此推介阿里的字体制作平台:,实现过程,在此略过。

个人认为,如果不是移动开发,或者需要兼容低版本浏览器的开发过程中不推荐使用font icon这种技术,因为即使能在浏览器中能显示图像,但并不能展示font icon最强大的一面。

 

转载于:https://www.cnblogs.com/Travel/p/3460256.html

你可能感兴趣的文章
clientHeight、offsetHeight、scrollTop
查看>>
手写json
查看>>
python-装饰器的简单使用
查看>>
CDQ分治学习笔记
查看>>
洛谷P3515 [POI2011]Lightning Conductor(决策单调性)
查看>>
CSS - 复合选择器
查看>>
tomcat 启用NIO
查看>>
转回java,项目遇到的环境相关问题记录
查看>>
linux suse 3.0.101的一次中断暴增的排查
查看>>
九度 题目1528:最长回文子串
查看>>
WebApi安全性 使用TOKEN+签名验证
查看>>
程序锁的分析一
查看>>
密码输入框的显示与隐藏
查看>>
day14 装饰器
查看>>
Oracle创建表,并添加默认值和备注
查看>>
国家统计信息查询网址
查看>>
ping -c 3 localhost
查看>>
c语言中的 %u 什么意思啊?
查看>>
R中执行if else报错:unexpected 'else' in "else"
查看>>
PowerShell自定义修改远程桌面RDP端口
查看>>