首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

理解SVG

2012-06-20 
了解SVG教程细节·语言: JavaScript,HTML, SVG·难度: 中等·预计阅读时间: 30 分钟SVG-可缩放矢量图形 ,是一

了解SVG

理解SVG

教程细节

·      语言: JavaScript,HTML, SVG

·      难度: 中等

·      预计阅读时间: 30 分钟

 

        SVG-可缩放矢量图形 ,是一个XML风格标记驱动的矢量图形的浏览器渲染引擎。除了IE 9.0和Android V3之前版本外的所有浏览器都支持SVG。Canvas也有同样的支持情况,所以问题往往表现为:我们应该使用哪种方案?

        今天,我们将全面介绍SVG,并且解释为什么“我应该使用哪一个”这个问题通常的答案是 “我要用它们来做什么”。要得到SVG的完整信息,请查看Mozilla关于此主题的文档。你还可以看看SVG DOM API。


概述

        我们将首先概述SVG的一些独特的优势。 然后,用不着通读SVG所有长达80页的节点类型,我们将说明如何通过Illustrator快速的把SVG文档加入到网页中。我们还会讲讲D3.js,一个强大的、SVG控制的JavaScript库。

“SVG并不只用于像素处理。”


SVG的主要优点

        除了用于某些应用上跨图像或者基于Canvas的渲染之外,SVG还有相当多的优点。 SVG并不只用于进行像素处理,但是它能够很好地处理矢量图形和可编程性的矢量。

分辨率无关

        你可能不知道,分辨率无关和浏览器不可知论是近来前端开发中热议的话题(想想“响应式设计”)。大多数用来解决分辨率问题(例如视网膜屏幕上)的方案既导致了大量不必要的数据下载(高清图像替换)又为一个或者其他浏览器进行了妥协。这使得无线网络中更高分辨率图像的传输往往受限于数据下载速度的瓶颈。这并不理想。

        SVG提供了一种方法来提供全分辨率的图形元素:不管什么大小的屏幕,缩放比例或着分辨率。 直到SVG出现之前,我们只能通过CSS和文本渲染看到清晰的元素样式。在SVG里不需要使用div和:after元素来创建简单的形状和其他效果。相反你可以创建各种矢量形状。

“SVG提供了一种方法来提供全分辨率的图形元素:不管什么大小的屏幕,缩放比例或着分辨率”

基于DOM节点的API

        你写HTML吗? JavaScript和CSS呢? 是的。 现在你已经知道了很多关于编写SVG的信息。 SVG实际上使用和XML兼容的格式来定义其呈现的形状。除此之外,你可以用CSS为形状添加样式,使它们与JavaScript进行交互。有多个像D3.js和Raphael的JS库可以协助你。下面是一组SVG元素的例子(Envato叶子)。你也可以在JSFiddle上看到这个示例 。