对于设计师来说一般使用Adobe Illustrator设计完矢量图形后,需要使用它导出为SVG图形格式,以便可以在web上使用。
而使用Adobe Illustrator有不同的方法导出SVG,下面就来说说这些方法之间的差异。
"Save AS"方法
使用Adobe Illustrator导出SVG最常用的方法是使用File > Save As...方法来导出SVG格式文件。

在选择保存为SVG格式的时候,会弹出一个对话框上面有一个SVG code的按钮,点击它会在保存为SVG之前显示SVG的代码,直接拷贝粘贴到代码编辑器中就可以使用,不需要保存为SVG文件。

如果你在网络上搜索关于Illustrator保存SVG方法的信息,大部分的信息告诉你的直接使用这种方法保存SVG就可以了,因为SVG是W3C认可的一种标准的图形格式。
需要注意的一点是,虽然使用上面说的这种方法保存的SVG是没有什么问题,但是要直接在web上使用还是有问题的。当你使用File > Save As...方法保存为SVG的时候,Illustrator为了你方便后面能在Illustrator中编辑文件,所以它在保存的时候没有做优化处理。
比如,当你使用File > Save As...保存SVG的时候,Illustrator会把它很多的一些额外的数据信息包含到SVG中去,正常来说是没问题的。但是,对于web来说,这些信息是没有意义而且还额外增加了SVG的体积。使用这种方法导出来的SVG比使用专门为web保存SVG的方法的体积要大很多。

从上面可以看出,体积确实要大很多。
如果为了以后编辑方便,完全可以把文件保存为Illustrator默认.ai格式文件,直到最后确定导出为SVG为止。如果,你真想保存为SVG格式的文件,可以在保存的时候选择Preserve Illustrator Editing Capabilities这个选项,然后在命名的时候使用original来命名,表示不能直接在生产环境中使用。
下面来看看另外一种方法。
Export As方法
File > Export > Export As...是另一种完全不同的方法。使用它来导出文件是用来专门用于各种使用场景的文件,所以生成的文件对于后面要再使用Illustrator来编辑的话就不是很友好来。
比如,如果导出JPG,那就不要期望导出后可以再以矢量来编辑了。
而导出为SVG则与使用Save As...的方法完全不同。使用导出方法来导出的SVG是专门用于web的,它导出来的文件把对于web没有意义的信息数据全部删除,比如doctype、metadata这些信息。而且使用它导出来的SVG在Illustrator打开的话可能与打开源文件还有差异。
具体导出选项如下所示:

下面来说说这些选项具体的含义:
1、Styling:Presentation Attributes表示的意思使用SVG自带的方法比如fill: red来表示SVG的UI样式信息;而Inline Styles则表示使用行内样式来定义SVG的UI样式信息,比如style="fill: red;"。使用Presentation Attributes可以很容易使用CSS来覆盖。而Inline Styles则可以更加灵活使用CSS来定义SVG的UI样式信息。也可以选择把样式信息导出在style标签内。
2、Font:选择SVG可以直接把文本导出文本,也可以选择Convert to Outlines直接把文字转换为矢量图形来使用。当然导出的要确保没有变形的问题,导出矢量图形也会有可访问性等问题。
3、Images:Link表示如果在SVG中使用了位图,它会使用链接的方式来导入位图,而不是使用Embed方法来处理位图。
4、Object ID's:Unique表示导出来的每一个ID是不同,这个对于在web中使用来说是必选的。当然也可以选择Minimal来以每一个图层的名字表示ID。
5、Decimal:这个表示导出来的SVG中的viewBox单位的精度,一般选择2就可以了。除非你很明确的知道你要保存SVG尺寸的精度。
6、Minify:既然导出来是在web上使用,当然要勾选它来优化SVG。
7、Responsive:勾选它,表示不设置宽高,这样在web上使用的话可以很方便来做自适应,可以去我发的这个截图看看。
使用这种方法来导出来的SVG可以直接在web上使用。当然使用SVGO等SVG优化工具可以对它进行再次的优化。

Export for Screens方法
在最新版的CC 2017中,Illustrator多提供了一个选项File > Export > Export for Screens...这个方法是专门用来导出来在各种数字设备中使用的。其实这个功能看起来和上面说导出来为web使用的方法有些重叠,Export for Screens提供了导出iOS和Android的选项。

选择Export for Screens方法,它会提供一个对话框来给我们选择不同的设备,从而导出适合不同设备使用的格式。

这个方法不仅可以导出SVG,还可以同时导出不同设备使用的格式。比如,我们设计了一套icon,并且全部在一个画布文件中,使用Export for Screens可以一次性导出SVG,还可以导出给不同分辨率设备使用的PNG格式的图形,非常方便。当然,由于统一使用的是Export来导出,所以导出的时候也会对图形进行优化。
你也可以使用Asset Export面板来把你想单独导出的图形拖到面板中单独导出。

直接从画板中复制粘贴SVG代码
如果想要单独导出画布中特定图形的SVG代码,这里有一个更简单的方法,就是Edit > Copy。

在Illustrator拷贝后,可以再接把SVG代码粘贴到你想粘贴的任何地方。
当然,使用拷贝到方法得到的代码跟使用Save As...方法得到的代码差不多,都是没有优化的。如果,你要直接使用在web中,还是要清理优化下代码。
得到SVG了,然后...
得到了SVG,接下来就是使用它了,比如如果要使用SVG来制作icon等,除了icon,SVG还有什么应用场景呢?
可以看看这篇文章。
本文主要是从The Different Ways of Getting SVG Out of Adobe Illustrator这篇文章整理而来,有删减,有疏漏或者理解不到位的地方,还请多多指教!