SVG 和字符图标
制作网站往往需要使用一些图标来提高用户体验,如果我们的是一些扁平化设计的图标,我们可以选择 SVG 或 图标字体来提高用户体验。
下面对这两种技术进行比较。
开发难度:
现在的在线工具非常强大,比如 iconmoon 的生成工具,可以根据自己的意向选择生成内联的 SVG 图标或字体图标。而我们的设计师只需要提供 SVG 格式图标文件。使用方式和 CSS sprites 有些相同。就难易程度来讲两者差不多。
精致度
SVG 是最直接的矢量图形了,在任何大小的情况下都能细腻的显示图标,尤其是在 retina 显示屏上,效果绝佳,这是众多开发者选择 SVG 的最主要一个原因。
字体图标被浏览器看做是字体,虽然和字体一样可以任意放大或是缩小,但会产生很明显的锯齿,这造成了很糟糕的视觉效果。
视觉效果
SVG 可以是多颜色的,SVG 的各个部分可以单独分开添加交互的动画效果,比如鼠标划过就打开的信封,或是鼠标点击就转动的手表。
字体图标是单一的整体,它是单色,添加起交互效果往往是针对整体的放大缩小,变色旋转等等。
实际使用的表现
SVG 要比字体图标大得多,现在流行的做法是将其放在页面当中以减少HTTP请求。
字体图标比较小,而且会缓存在页面当中。它适合在一些比较大的项目中使用,比如我们希望维护一个图标库,这些图标要满足大量不一样的需求。
兼容性
SVG 在这点上要逊于字体图标,它并不支持IE8,只能做优雅降级。
字体图标有着非常良好的兼容性,它兼容到IE6。
总结
字体图标稳重,SVG潇洒。
如果要兼容IE8及以前,使用字体图标保持兼容性。或是在一些项目非常大,图标很多的情况,用字体图标会更容易维护。
如果只需支持高级浏览器,而网站追求一些创新,高级的视觉及交互效果,这时用SVG会是更好的选择。
最后链接几个相关在线工具
SVG 和字符图标的更多相关文章
- SVG小图片格式显示(字符图标,可设置title属性)
1.HTML + Font 方式: 修改图标颜色只需修改字体颜色,修改图片大小只需修改字体大小. 关于字体图片,我们可以自己制作,也可以从网上下载 阿里巴巴矢量图库. 在线图标字体库.Icomoon. ...
- XE下 SVG格式的图标使用方法
下载一个SVG格式的图标,千图网,http://tool.58pic.com/tubiaobao/ 用txt文本打开SVG图标 拖一个PathLabel控件 在PathLabel控件的Data属性添加 ...
- m_Orchestrate learning system---十六、如何快速在一堆字符图标中找到所需
m_Orchestrate learning system---十六.如何快速在一堆字符图标中找到所需 一.总结 一句话总结:find查找字符 比如说找teacher feedback 的图标,可以多 ...
- 使用SVG symbols建立图标系统完整指南
从最开始的使用img图片,到后来的使用css sprite来减少服务器请求,再到流行的图形字体化图标Iconfont.现在,一种全新的图标使用方式开始流行了起来--SVG symbols图标. 工作原 ...
- 前端Unicode字符图标
前端Unicode字符图标 原文链接地址:http://www.htmleaf.com/ziliaoku/qianduanjiaocheng/20141225979.html
- svg图片做图标字体
https://icomoon.io 这个网站,把svg变图标
- 使用SVG symbols建立图标系统
在实现Web项目的图标系统时,SVG是一个不错的选择.虽然使用SVG创建图标系统有多种方式.在这篇文章中,我们只看其中一种:SVG symbols.这项技术基于两个元素的使用:<symbol&g ...
- css 字符图标浏览器自带
项目中用到的一些特殊字符和图标 html代码 <div class="cross"></div> css代码 .cross{ width: 20px; he ...
- SVG生成字体图标详解
随机推荐
- oracle生成随机数
UPDATE busi_chance_info t SET t.exp_amount = (SELECT floor(dbms_random.value(1, 10000000)) ...
- struts2 注解方式
struts2扫描方法: 扫描其位于包的命名注解的类 “struts, struts2, action 或 actions“. 接着,扫描相匹配下列任一条件的文件: 实例了 com.opensymph ...
- 深入C语言内存区域分配(进程的各个段)详解(转)
原文地址:http://www.jb51.net/article/39696.htm 一般情况下,一个可执行二进制程序(更确切的说,在Linux操作系统下为一个进程单元,在UC/OSII中被称为任务) ...
- 提高MySQL数据库查询效率的几个技巧(转载)
[size=5][color=Red]提高MySQL数据库查询效率的几个技巧(转)[/color][/size] MySQL由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用.我 ...
- STL之二分查找 (Binary search in STL)
STL之二分查找 (Binary search in STL) Section I正确区分不同的查找算法count,find,binary_search,lower_bound,upper_bound ...
- USB信号是什么类型的? 为什么在D+,D-处要接上拉下拉电阻呢,具体阻值要如何计算
USB协议要求的,1.5K上拉在D+时表示是全速设备,在D-表示不是全速设备有些方案里面(比如PNX5230)推荐D+/D-接下拉1M的电阻是为了提高数据传输稳定性的 ① usb有主从设备之分,主设 ...
- WebSocket C# Demo
WebSocket 规范 WebSocket 协议本质上是一个基于 TCP 的协议.为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTT ...
- Android Studio 调试过程中快捷查看断点处变量值(Ctrl+Shift+I无效)?
当你在做Keymap到Eclipse后,在debug过程中,在Eclipse中我们很喜欢用Ctrl+Shift+I去查看一个运算或者调用的结果,这样用起来很方便.但是keymap到Eclipse后,你 ...
- Python打印格式化与字符串
关于Python打印格式化与字符串,比较全面的总结,希望对大家有帮助~ # -*- coding: cp936 -*- ''' 打印格式 ''' print "a" print & ...
- C语言的本质(32)——C语言与汇编之C语言内联汇编
用C写程序比直接用汇编写程序更简洁,可读性更好,但效率可能不如汇编程序,因为C程序毕竟要经由编译器生成汇编代码,尽管现代编译器的优化已经做得很好了,但还是不如手写的汇编代码.另外,有些平台相关的指令必 ...