SVG 元素
SVG 元素用于将SVG形状分组在一起。分组后,您可以像变形单个形状一样变换整个形状。与 不能单独成为转换目标的嵌套 元素相比,这是一个优势。您还可以设置分组元素的样式,并像对待单个元素一样重复使用它们。
元素g是用来组合对象的容器。添加到g元素上的变换会应用到其所有的子元素上。添加到g元素的属性会被其所有的子元素继承。此外,g元素也可以用来定义复杂的对象,之后可以通过元素来引用它们。
SVG 元素示例
这是一个简单的SVG 示例:
示例
xmlns:xlink="http://www.w3.org/1999/xlink">
style="stroke: #006600;"/>
style="stroke: #006600; fill: #006600"/>
nhooo.com 基础教程
测试看看 ‹/›运行后图像效果:
nhooo.com 基础教程
此示例显示了以元素组合在一起的3个形状。 如此处所列,在此分组中没有特别的好处。 但是请注意当我们请求转换元素时会发生什么。 这是代码:
示例
xmlns:xlink="http://www.w3.org/1999/xlink">
style="stroke: #006600;"/>
style="stroke: #006600; fill: #006600"/>
nhooo.com 基础教程
测试看看 ‹/›运行后图像效果:
nhooo.com 基础教程
注意元素中的所有形状如何围绕点50,50旋转45度。
g元素的样式由其子元素继承
元素 的CSS样式由其子元素继承。这是一个示例:
示例
style="stroke: #009900; fill: #00ff00;"/>
测试看看 ‹/›
本示例定义了一个具有三个子元素的元素。该 元素具有一个style属性。前两个子元素没有style属性。因此,元素中定义的样式被这些子元素继承。第三个子元素具有一个style设置笔触和填充颜色的属性,但它仍继承该元素的stroke-width属性。
运行后图像效果:
缺点:G元素没有X和Y属性
与将嵌套的元素内的形状分组相比,转换元素内的所有形状的能力是一个优势。 元素不能自行转换。 您必须将元素嵌套在元素内,以转换其嵌套形状。
不过,与元素相比,元素有一个缺点。 不能仅通过更改元素的x和y属性来移动包括所有嵌套形状的元素。 元素没有x和y属性。 要移动元素的内容,只能使用transform属性使用“ translate”函数,例如:transform ="translate(x,y)"。
如果需要使用x和y属性在元素内移动所有形状,则需要将元素嵌套在元素内。 元素具有x和y属性。 这是一个实例:
示例
style="stroke: #006600;"/>
style="stroke: #006600; fill: #006600"/>
nhooo.com 基础教程
测试看看 ‹/›
在此示例中,元素内的所有形状都嵌套在 元素内。请注意,将的x属性设置为100。这意味着首先对内的形状进行转换,然后沿x轴移动100,因为位置x = 100。运行后图像效果:
nhooo.com 基础教程
您还可以切换嵌套,将元素嵌套在元素内 ,如下所示:
示例
nhooo.com 基础教程
测试看看 ‹/›
然后,形状首先沿着x轴移动100,因为元素的位置是x="100",然后从该位置绕点50,50旋转45度。结果如下:
nhooo.com 基础教程
这两个图像可能看起来相似,但是有所不同。 不同之处在于执行运动和旋转的顺序。 如果仔细观察,还可以在图像上看到。 显示的形状放置不均。
此外,请注意,即使第一个图像在x方向上以点点的方式显示在图像中,也是如此。 发生这种情况是因为首先旋转了形状,然后在旋转部分中文本伸出了图像。
此后向左移动时,仍然缺少缺少的文本部分。