SVG:可缩放矢量图形
可缩放矢量图形(Scalable Vector Graphics,SVG)基于 XML 标记语言,用于描述二维的矢量图形。
作为一个基于文本的开放 Web 标准,SVG 能够优雅而简洁地渲染不同大小的图形,并和 CSS、DOM、JavaScript 和 SMIL 等其他 Web 标准无缝衔接。本质上,SVG 相对于图像,就好比 HTML 相对于文本。
SVG 图像及其相关行为被定义于 XML 文本文件之中,这意味着可以对它们进行搜索、索引、编写脚本以及压缩。此外,这也意味着可以使用任何文本编辑器和绘图软件来创建和编辑它们。
和传统的点阵图像模式(如 JPEG 和 PNG)不同的是,SVG 格式提供的是矢量图,这意味着它的图像能够被无限放大而不失真或降低质量,并且可以方便地修改内容,无需图形编辑器。通过使用合适的库进行配合,SVG 文件甚至可以随时进行本地化。
SVG 是由万维网联盟(W3C)自 1999 年开始开发的开放标准。
教程
SVG 教程是在假设你没有任何经验的情况下,从基础开始,逐步深入到更高级的技术。
- 从零开始介绍 SVG
-
本教程旨在解释 SVG 的内部结构,其中包含大量技术细节。如果你只想绘制漂亮的图像,你可以在 Inkscape 文档页面 找到更多有用的资源。W3C 的 SVG Primer 提供了另一个很好的 SVG 介绍。此外,还可以查看以日历为主题的 SVG 教程,该教程将指导你编程 25 个充满节日气氛的 SVG。
指南
SVG 指南可帮助你在网络上使用 SVG,涵盖嵌入、MIME(媒体)类型、处理脚本、动画、过滤器等主题。
- 在 HTML 内容中应用 SVG 效果
-
现代浏览器支持在 CSS 样式中使用 SVG,以便在 HTML 内容中应用图形效果。
- 内容类型
-
SVG 使用了多种数据类型。本文列出了这些类型及其语法和用途说明。
- 命名空间速成班
-
命名空间对于支持多种 XML 方言的用户代理至关重要。浏览器必须非常严格;现在花时间了解命名空间,将来就不会再头疼了。
- 脚本
-
用 JavaScript 创建和操作 SVG 有多种方法。本文档介绍了事件处理、交互性以及处理嵌入式 SVG 内容的方法。
- 使用 SMIL 制作 SVG 动画
-
SMIL 是一种基于 XML 的语言,用于编写交互式多媒体演示。作者可以在 SVG 中使用 SMIL 语法来定义动画元素的时间和布局。
- SVG 作为图像
-
SVG 可在 HTML、CSS、某些 SVG 元素中作为图像格式使用,也可通过 Canvas API 使用。本页列出了可以将 SVG 用作图像源的功能。
- SVG 滤镜
-
SVG 支持滤镜,因此作者可以应用阴影或模糊等效果,甚至合并不同滤镜的结果。
- HTML 中的 SVG 简介
-
本文介绍了如何使用内联 SVG,并附有示例进行说明。
参考
SVG 参考文档包含有关元素、属性和 DOM 接口的全面信息,并列出了相关规范和标准文档。
- SVG 元素
-
用于构建、绘制和布局矢量图形的 SVG 元素。
- SVG 属性
-
用于指定如何处理或渲染元素的 SVG 属性。
- SVG DOM 接口参考
-
用于使用 JavaScript 与 SVG 交互的 SVG DOM API。