抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

SVG入门基础_01

一、SVG介绍

SVG 是使用 XML 来描述二维图形和绘图程序的语言,SVG指可伸缩矢量图形 (Scalable Vector Graphics)。

  • SVG 指可伸缩矢量图形 (Scalable Vector Graphics)

  • SVG 用来定义用于网络的基于矢量的图形

  • SVG 使用 XML 格式定义图形

  • SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失

  • SVG 是万维网联盟的标准

  • SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

SVG 的历史和优势

在 2003 年一月,SVG 1.1 被确立为 W3C 标准。

参与定义 SVG 的组织有:Sun公司(已被Oracle公司收购)、Adobe、苹果公司、IBM 以及柯达。

与其他图像格式相比,使用 SVG 的优势在于:

  • SVG 可被非常多的工具读取和修改(比如记事本)。
  • SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。
  • SVG 是可伸缩的。
  • SVG 图像可在任何的分辨率下被高质量地打印。
  • SVG 可在图像质量不下降的情况下被放大。
  • SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)。
  • SVG 可以与 JavaScript 技术一起运行。
  • SVG 是开放的标准。
  • SVG 文件是纯粹的XML。

二、SVG基本属性

  • svg文件一般以.svg为后缀名(全部小写)。

  • 坐标系统:

    在一个SVG画布中也有自己的坐标系统,与CSS坐标系统的工作方式相同,即其坐标系统的y轴向下为正方向,x轴向右为正方向,父元素左上角为坐标原点。

  • SVG中属性的数值的默认单位:

    默认以px为单位,代码中可写可不写,当然还可自定义cm、mm、ch、em、rem、pc等单位。

  • 视窗画布

    • 画布:SVG画布是无限大的,理论上我们也可以画无限大的东西。我们画的所有东西都在画布上。

    • 视窗:我们在<svg>标签里面定义的大小width="" height=""即为视窗大小。

      视窗和我们画的图像默认都往屏幕左上角对齐,如果图像内容大小超过了视窗大小,超出的部分就不会显示出来,这里涉及到<svg>标签的overflow属性,下文详细介绍。

1
2
3
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" style="outline: 1px solid black; overflow: visible">
<!-- ...内容... -->
</svg>

代码解析:

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

三、SVG基本形状元素

(一)基本几何图形

1、矩形<rect>

1
2
3
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="300" height="600" style="outline: 1px solid black; overflow: hidden">
<rect width="300px" height="150px" x="50px" y="10px" fill="gray" rx="30" ry="30" />
</svg>

显示结果:

image.png

代码解析:

  • <rect />标签为单标签,定义矩形图形。
  • widthheight属性定义自身的尺寸(宽和高),二者必须都有有效值,否则<rect />定义失败!
  • xy属性定义图形在xy轴上的偏移距离。
  • fill属性定义图形内部的填充颜色,值与html所支持的相同,默认不输入或者输入值有误时为纯黑色。
  • rxry属性定义图形的圆角,二者只定义其中一个时,未定义的那个继承已定义的;若都定义了但属性值不同且不为0,则x与y方向上按实际数值显示*;若其中一个数值为0,则二者都不生效!

评论