icon-font与svg

icon font 使用与svg应用分享

icon font 字体概述

css3增加了@font-face属性,传统的浏览器是通过font-family来设置字体,如果系统里没有的话就用其它字体来代替。 
有了@font-face属性就方便多了,可以由开发人员通过设计自定义字体来进行的,加载过程是浏览器通过下载字体,再进行渲染页面

font-face可以设置自定义自体,也可以设置自定义图片字体,font icon由此诞生。@font-face 引入生成好的字体文件 ,然后在网 
页中需要使用某个图标的地方,写上对应的“文字”,那么在浏览器中就可以看到图标。 
icon font 是国内第一家在线网络字体生成的工具网站,里面还有许多icon字体可以应用

Iconfont 使用起来很简单,打开它的首页,你会发现很多图标,点击你需要的图标,就会发现图标到了右上角的购物车里,选择好 
了图标之后,点击购物车,即可下载下来一个 zip 包。

解压之后,会出现:demo.html, iconfont.eot, iconfont.svg, iconfont.ttf, iconfont.woff 这几个文件。

其中 demo.html 文件是使用说明和效果,另外四个就是为兼容各个平台而转换生成的字体文件。你只需要打开 demo.html 文件 
就可以看到详细的使用说明。 
使用字体图标有很多好处,大体如下:

兼容性好,各个平台浏览器基本都可以使用,而且在某些低级浏览器中,效果比图片更好 
 相对于同效果的图片相比,体积小,减少 http 请求,增加前端性能 
 可维护性好,维护起来可以通过增减字体快速应用 
 交互性好,改变字体颜色即可改变图标的颜色,同时可以配合 CSS3 的动画、渐变、过渡、变形等属性实现 
 复杂的交互

然也有一些缺点,例如图标通常只有一种颜色,虽然渐变可以使其颜色更加丰富,但是兼容性没了。还有一些其他的缺点,不过对于 
iconfont 这个工具来说,最大的缺点就是图标太少。国外网站iconfont字体有 fontello 可以使用。

PC端应用教程

font-face声明字体

 @font-face {  font-family: ‘iconfont‘;  src: url(‘iconfont.eot‘); /* IE9*/

 src: url(‘iconfont.eot?#iefix‘) format(‘embedded-opentype‘), /* IE6-IE8 */

 url(‘iconfont.woff‘) format(‘woff‘), /* chrome、firefox */

 url(‘iconfont.ttf‘) format(‘truetype‘), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/

 url(‘iconfont.svg#iconfont‘) format(‘svg‘); /* iOS 4.1- */

}

定义使用的iconfont样式

 .iconfont{   font-family:"iconfont";  font-size:16px;font-style:normal;  -webkit-font-smoothing: antialiased; 抗锯齿显示样式,safair或chrome  -moz-osx-font-smoothing: grayscale;  display: block; 如果出现小方块,在ie7下,则加这句话  -webkit-text-stroke-width: 0.2px;  pc的chrome出现严重的锯齿  }

页面引用

  <i class="iconfont">&#33</i>

应用注意事项:

只在你确定你非常需要 @font-face的时候才使用他 
将你的@font-face定义在所有的SCRIPT标签前 
如果你有许多字体文件,考虑将它们分散到几个域名下。 
不要包含没有使用的 @font-face声明——IE将不分它使用与否,通通加载 
Gzip字体文件,同时给它们一个未来的过期头部声明 
考虑字体文件的后加载,起码对于IE。

参考网址 
参考网址

icon font制作

把制作好的AI图,另存为svg, 然后通过网址 上传, 点击加入购物车,然后在购物车中下载,会生成调用demo,进行对图片字段的调用。

以上是icon font 字体的使用,下面介绍svg的应用。

SVG的应用

SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。

特点

1.任意放缩。 
用户可以任意缩放图像显示,而不会破坏图像的清晰度、细节等。 
2.文本独立。 
SVG图像中的文字独立于图像,文字保留可编辑和可搜寻的状态。也不会再有字体的限制,用户系统即使没有安装某一字 体,也会看到和他们制作时完全相同的画面。 
3.较小文件。 
总体来讲,SVG文件比那些GIF和JPEG格式的文件要小很多,因而下载也很快。 
4.超强显示效果 
SVG图像在屏幕上总是边缘清晰,它的清晰度适合任何屏幕分辨率和打印分辨率。 
5.超级颜色控制。 
SVG图像提供一个1600万种颜色的调色板,支持ICC颜色描述文件标准、RGB、线X填充、渐变和蒙版。

使用内联SVG

SVG作为背景图片使用 
SVG作为src属性使用 
内联SVG

声明一个SVG元素

<svg xmlns="http://www.w3.org/2000/svg" width="400" height="300" viewBox="0 0 400 300"> <!--  svg stuff here  --></svg>

创建SVG图形

circle:基础图形,基于中心点以及半径来创建的圆形。

对于circle元素,我们有3个需要指定的属性。它们是cx,cy,r。cx和cy是圆心在X轴和Y轴上的坐标,如果没有指定的话,它们的默认值为0。r为圆形的半径。一般来说,对一个圆形元素来说我们可以看到如下的标签:

<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">  <circle cx="50" cy="50" r="50"></circle></svg>

rect:基础图形,基于角的位置和矩形的宽度和高度来创建的矩形。

矩形的创建跟圆形的创建方式差不多。就它最基础的形式来说,我们需要为其指定左上角的的坐标x和y,以及该矩形的宽度width和高度height的值。其标签如下所示:

<svg xmlns="http://www.w3.org/2000/svg" width="200" height="100" viewBox="0 0 200 100">  <rect x="0" y="0" width="200" height="100"></rect></svg>

polygon:基础图形,基于坐标点和两点相连而成的直线线段来创建的多边形。

我们可以通过在points属性上的多组 x-y 坐标点来定义我们的多边形元素。这些坐标点通过直线线段来连接。标签声明如下:

<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 100">  <polygon points="0,50 50,0 150,0 200,50 150,100 50,100"></polygon></svg>

path:万能的图形,可以用来创建任意的形状。所有基础图形都能由它来创建。

path元素是在形状处理方面最强大的元素。在path元素中,我们可以定义d属性,这个属性为我们的路径如何延伸作出了定义。d属性可以让我们通过一系列的命令来指定一个运动轨迹。我们可以用直线命令和弯曲命令来构建一些复杂的形状。但实际上,你并不希望手写贝塞尔曲线这种玩意,二是通过矢量软件来创建并输出SVG。但了解一下他们并不是什么坏事。

M x y:移动到坐标x-y 
L x y:从当前位置画一条直线到坐标x—y 
H x:从当前位置画一条水平线到坐标x 
V y:从当前位置画一条垂直线到坐标y 
Z:闭合路径

<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200">  <path d="M 0 0 H 200 V 200 H 0 Z"></path></svg>

fill:元素的填充颜色 
fill-opacity:元素的填充颜色透明度 
stroke:元素的笔画颜色 
stroke-width:元素的笔画宽度 
stroke-opacity:元素的笔画颜色透明度

<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200">  <circle class="circle" cx="100" cy="100" r="90" fill="#3399cc" stroke="#333333" stroke-width="5"></circle></svg>

.circle {  transition: stroke 0.3s, fill 0.3s;}

.circle:hover {  stroke: #3399cc;  fill: #333333;}

SVG中的结构化、分组和引用元素

使用元素分组

元素将其所有子内容分到一组。它通常有一个id属性,用来给分组命名。你给元素应用的样式也都会被应用于它所有的子元素。所以它很容易添加样式、动画、交互,甚至整个组的对象的动画。

使用重用元素

元素可以让你重用现有的元素,给你一个类似于图形编辑器中复制粘贴的功能。它可以用于重用单个元素,也可以重用一组用定义的元素。

元素有x,y,height,width属性,它通过使用xlink:href属性引用其它内容。所以如果你已经定义了一个分组,并给它赋予了id,当你想要在其它地方使用它时,你只需要在xlink:href属性中给一个URI,然后指定x和y的位置,也就是该组图像显示的原点(0, 0)。

<use x="100" y="100" xlink:href="#bird" /><use x="100" y="100" xlink:href="path/to/animals.svg#bird" /><use xlink:href="#bird" transform="translate(100, 100)" />

使用重用已存储元素

元素可以用来存储那些我们不想直接显示的内容。换句话说,元素就是用来定义元件,但是不直接渲染。这个隐藏的存储元件可以在后面被其它SVG元素应用及显示,这使得它非常适合用于绘制那些包含重用图像的图案。

<svg><defs>    <linearGradient id="gradient">        <stop offset="0%" style="stop-color: deepPink"></stop>        <stop offset="100%" style="stop-color: #009966"></stop>    </linearGradient></defs>

<rect stroke="#eee" stroke-width="5" fill="url(#gradient)"></rect>

使用对元素进行分组

非常适用于定义可重复使用的元件(或符号)。它也可以作为元素实例化的一个模板。而且有viewBox和preserveAspectRatio属性,它可以在引用元素定义的矩形视窗中自适应缩放。注意symbol元素每次被use元素实例化时都可以重新定义新的视窗。

SVG SMIL animation

现在这个功能正在逐步被移除,最好不要使用,它是在svg里直接加入动画元素,现在做的时候都用css3书写对元素的操作。 
主要内容有

<set><animate><animateColor><animateTransform><animateMotion>`
 正确的写法举例 #mouthTwo{       animation:domouth 1s linear infinite;        -webkit-animation: domouth 1s linear infinite;    }    @-webkit-keyframes domouth {        from {            opacity: 0;        }

        50% {            opacity: 1;        }    }    @keyframes domouth {        from {            opacity: 0;        }

        50% {            opacity: 1;        }    }

 以前的写法 <animate attributeName="opacity" from="1" to="0" begin="0s" dur="3s" repeatCount="indefinite" />

参考文档 
snap.svg.js 制作svg动画 
svg教程视频

以上仅供参考

时间: 2024-10-09 03:56:06

icon-font与svg的相关文章

免费素材-Helium (AI, EPS, SVG, Icon Font)

在线演示 在线演示 本地下载 我很高兴和大家分享今天的素材-Helium.它有多种格式可供下载(AI, EPS, SVG, Icon Font) ,内容包含曲线.飞行器.上传下载.喇叭等类型.

Web 设计新趋势: 使用 SVG 代替 Web Icon Font

如果你还在使用 Icon Font 作为网页中显示图标的实现方案,那么你可能有点 Out 了. 由于使用 Icon Font 显示图标存在一些缺陷,开发者们一直在致力于探索使用 SVG 作为替代的方法. 这篇文章列举了目前 SVG 比较常见的使用方法. 关于使用 Icon Font 的缺陷,这篇来自 CSS Trick 的 <Inline SVG vs Icon Font> 可谓是总结的相当全面了.在我看来,Icon Font 的主要缺陷有以下几条: 浏览器将其视为文字进行抗锯齿优化,有时得到

字体图标 Icon font

Icon font Icon font 指的是用字体文件取代图片文件,来展示图标.特殊字体等元素的方法. 应用场景: Icon Font的优缺点 大小可以自由地变化 颜色可以自由地修改 添加阴影效果 *IE6也可以支持 支持一些CSS3对文字的效果 字体文件比图片文件小很多 由于是字体,所以只可以显示纯色图片,不支持多种颜色的图片(缺点) 资源: 阿里icon font字库 这个是阿里妈妈M2UX的一个icon font字体图标字库,包含了淘宝图标库和阿里妈妈图标库. fontello 在线定制

CSS Sprites+CSS3 Icon Font

CSS Sprites+CSS3 Icon Font 先马上等有空一定看看转载于http://www.cnblogs.com/jingwhale/p/4280073.html CSS Sprites在国内很多人叫CSS精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了.根据具体图标在大图上的位置,给背景定位. CSS Sprites加速的关键,不是降低质量,而是减少个数. 做成

icon font字体图标字库汇总

最近在研究icon font图标字库,找了一些比较好的在线字库.大都是开源的,而且各有特色! 阿里icon font字库 http://www.iconfont.cn/ 这个是阿里妈妈M2UX的一个icon font字体图标字库,包含了淘宝图标库和阿里妈妈图标库. fontello http://fontello.com/ 在线定制你自己的icon font字体图标字库,也可以直接从GitHub下载整个图标集,该项目也是开源的. icomoon http://icomoon.io/app/#/s

阿里UX矢量图标库–最强大的矢量图标库(Icon font制作力荐工具)

继前面介绍过ICON-FONT的制作后,找了几个ICON库都是国外的今天偶然发现阿里巴巴的图标矢量库,www.iconfont.cn用了之后感觉很强大,丰富的图标库(集合阿里妈妈&淘宝的图标库),还支持自己上传,关键还能生成你项目专用的CDN,速度不言而喻,支持国产.下面引用介绍 转载请注明来源:Web前端(W3Cways.com) - Web前端学习之路 » 阿里UX矢量图标库–最强大的矢量图标库(Icon font制作力荐工具) 使用SVG来代替Web Iconfont(图形字体化) 从最开

Icon Font浅谈

这周继续在弄hybird app 的 UI框架的重构,进行到了编写换肤功能的阶段,而在做换肤之前,我想应该先弄一套框架内置的图标. 而图标无非就是两种做法: 1.图片 使用图片很正常,但是有缺陷的. 1.众多的图标导致了增加了许多HTTP请求 PS:有人会说我把它们弄成一张大图不久行了,可是这样弄了之后,你连大小都无法改变.所以肯定还是一批小图片. 2.放大缩小失真 3.同张图片如果需要不同颜色,又得弄多一套出来. 2.字体 也就是这篇要说得Icon Font.做法就是讲你的图标做成字符,然后用

在iOS中使用icon font

在开发阿里数据iOS版客户端的时候,由于项目进度很紧,项目里的所有图标都是用最平常的背景图片方案来实现.而为了要兼容普通屏与Retina屏的设备,苹果要求每个背景图都要以两种尺寸存(a.png和[email protected]),这让设计师们增加了成本,因为他们每次都得出两份背景图标. 现在在web开发上,icon font技术的应用很广泛,它不仅在解决多分辨率显示问题上很有成效,而且在使用它的时候还能降低不少设计和开发成本. 那么它能不能应用到ios开发上来呢?带着这个疑问,我在github

解决firefox和IE9对icon font字体的跨域访问问题

何为跨域访问,为什么会有跨域限制?一切还得从浏览器的同源策略说起. 同源策略:是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能会受到影响,可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现. 浏览器的同源策略:限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性.同源策略的存在,限制了“源”自A的脚本只能操作“同源”页面的DOM,“跨源”操作来源于B的页面将会被拒绝. 何为同源呢?“img.company.

最新的超棒免费图标字体(icon font)收集

今天我们收集了18套非常有特色的免费图标字体给大家,如果能够将它们应用到你的用户界面设计上,绝对是完美之极! 到底什么才是图标字体? 图标字体是字体文件,用符号和字形的轮廓(像箭头.文件夹.放大镜等) 代替标准的文字数字式字符.图标字体就像Dingbat fonts,是专门为用户界面设计,就像其它网站字体一样,使用[email protected]在web浏览器里展示.处理方式类似网站字体: 拥有跨浏览器支持(甚至是IE6,例如,使用@font-face渲染网页字体) 如果使用者调整他们的浏览器