SVG中有形状继承的概念吗?
问题:我正在创建一个带有各种图标类型的地图,这些图标类型代表地图上的不同实体。有没有办法链接这些图标类型,以便我可以修改“父”(比如图例中的图标)并且所有“子”都将继承这些属性?
在 Inkscape 中做,但我希望它是一个 SVG 属性,因此是一个有效的 Stackoverflow 问题。
SVG中有形状继承的概念吗?
问题:我正在创建一个带有各种图标类型的地图,这些图标类型代表地图上的不同实体。有没有办法链接这些图标类型,以便我可以修改“父”(比如图例中的图标)并且所有“子”都将继承这些属性?
在 Inkscape 中做,但我希望它是一个 SVG 属性,因此是一个有效的 Stackoverflow 问题。
我不确定您所说的“属性”是什么意思。
您可以使用 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