svg介绍及使用小技巧

svg

SVG 意为可缩放矢量图形(Scalable Vector Graphics)。
SVG 使用 XML 格式定义图像。

什么是矢量图

  • 矢量图,也称为面向对象的图像或绘图图像
  • 在数学上定义为一系列由线连接的点
  • 矢量文件中的图形元素称为对象,每个对象都是自成一体的实例
  • 它具有颜色,形状,轮廓,大小和屏幕位置等属性

矢量图是根据几何特性来绘制图形,矢量可以是一个点或一条线,矢量图只能靠软件生成,文件占用内在空间较小,因为这种类型的图像文件包含独立的分离图像,可以自由无限制的重新组合。它的特点是放大后图像不会失真,和分辨率无关,适用于图形设计、文字设计和一些标志设计、版式设计等

SVG 代码以 <svg> 元素开始,包括开启标签 <svg> 和关闭标签 </svg> 。这是根元素。width 和 height 属性可设置此 SVG 文档的宽度和高度。version 属性可定义所使用的 SVG 版本,xmlns 属性可定义 SVG 命名空间。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <circle cx="100" cy="50" r="40" stroke="black"
  stroke-width="2" fill="red" />
</svg> 

stroke 和 stroke-width 属性控制如何显示形状的轮廓。我们把圆的轮廓设置为 2px 宽,黑边框。
fill 属性设置形状内的颜色。我们把填充颜色设置为红色。

使用介绍

  • 可以嵌套在 <embed>、<object> 或者 <iframe>
  • 当然也可以直接<svg></svg>使用
  • 把svg的文件用a标签引入<a href="circle1.svg">View SVG file</a>

svg的语法糖

svg在定义的时候已经初始化了很多简单的图形

矩形 <rect>
圆形 <circle>
椭圆 <ellipse>
线 <line>
折线 <polyline>
多边形 <polygon>
路径 <path>

其实我们使用svg大部分还是使用path,来定义一些复杂的图案

path
M = moveto                                      起始位置
L = lineto                                      结束位置
H = horizontal lineto                           水平
V = vertical lineto                             垂直
C = curveto                                     曲线
S = smooth curveto                              平滑的曲线
Q = quadratic Bézier curve                      //没用过
T = smooth quadratic Bézier curveto             //没用过
A = elliptical Arc                              椭圆弧形
Z = closepath                                   关闭路径

我们如果做复杂的图形,用path很麻烦,我们要做各种的计算,所以官网给我们的建议是,建议我们使用编辑器
svg还可以做很多的效果,比如说渐变 模糊 阴影 等等在这里就不一一介绍了,这篇文章只是科普性质的具体的还是需要去官网或者中文教程上去看

小技巧

1.修改svg大小
在svg标签上添加width和height
默认单位是px

<svg width="22" height="18"></svg>

2.修改图标的背景颜色
需要在path上添加fill表示填充色

<svg>
 <path fill="#00c585">
</path>
</svg>

3.控制svg旋转
在svg标签上添加transform动画属性

<svg transform="rotate(45)"></svg>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 实际工作中,SVG大多数是用 +<defs></defs>(或者symbol)+ + 的组合来使用的,defs ...
    风之化身呀阅读 7,338评论 1 4
  • SVG API: SVG是一种可缩放矢量图形,一种二维图形表示语言 与canvas不同的是,在浏览器的开发工具中能...
    Iris_mao阅读 1,088评论 0 5
  • 一、栅格图形和矢量图形栅格图形:也称位图,图像由一组二维像素网格表示。Canvas 2d API 就是一款栅格图形...
    linda102阅读 1,202评论 0 4
  • 一:什么是SVG? 对于SVG的定义如下: ①:SVG 指的是可伸缩矢量图形 (Scalable Vector G...
    GreenHand1阅读 902评论 0 1
  • 人,不应妄自菲薄,亦不应自视甚高。 ——江晚舟 这是江晚舟的第67篇原创文章 1 前一段时间,电视节目《声临其境》...
    江晚舟阅读 1,559评论 4 30

友情链接更多精彩内容