0

SVG中有形状继承的概念吗?

问题:我正在创建一个带有各种图标类型的地图,这些图标类型代表地图上的不同实体。有没有办法链接这些图标类型,以便我可以修改“父”(比如图例中的图标)并且所有“子”都将继承这些属性?

在 Inkscape 中做,但我希望它是一个 SVG 属性,因此是一个有效的 Stackoverflow 问题。

4

1 回答 1

4

我不确定您所说的“属性”是什么意思。

您可以使用 CSSclass="foo"将视觉样式应用于您的元素,例如fill:red; stroke-width:2px. 更改 CSS 规则将影响具有该类的所有形状的视觉样式。

但是,也许您想要的是<use>元素,它允许您在整个文档中放置许多对单个形状(或任意几何图形集)的轻量级引用。对原始形状/路径/视觉样式的更改会影响所有实例。

一个<use>元素可以引用一个特定的形状、一<g>组形状,甚至是整个<svg>文档。

要创建不单独显示的特殊源图形,您可以使用 a <symbol>(具有viewBox),或将任何内容放在 <defs>部分中(例如 a <g>)。

这是一个显示符号使用和<use>在地图上放置相同标记的示例:http:
//www.carto.net/svg/samples/symbol.shtml

于 2011-11-15T22:17:10.077 回答