【发布时间】:2011-11-15 21:21:58
【问题描述】:
SVG中有形状继承的概念吗?
问题: 我正在创建一个具有各种图标类型的地图,这些图标类型代表地图上的不同实体。有没有办法链接这些图标类型,以便我可以修改“父”(例如图例中的图标)并且所有“子”都将继承这些属性?
在 Inkscape 中进行,但我希望它是 SVG 属性,因此是有效的 Stackoverflow 问题。
【问题讨论】:
标签: svg vector-graphics inkscape
SVG中有形状继承的概念吗?
问题: 我正在创建一个具有各种图标类型的地图,这些图标类型代表地图上的不同实体。有没有办法链接这些图标类型,以便我可以修改“父”(例如图例中的图标)并且所有“子”都将继承这些属性?
在 Inkscape 中进行,但我希望它是 SVG 属性,因此是有效的 Stackoverflow 问题。
【问题讨论】:
标签: svg vector-graphics inkscape
我不确定您所说的“属性”是什么意思。
您可以使用 CSS class="foo" 将视觉样式应用于您的元素,例如fill:red; stroke-width:2px。更改 CSS 规则将影响该类的所有形状的视觉样式。
但是,也许您想要的是<use> 元素,它允许您在整个文档中放置许多对单个形状(或任意一组几何图形)的轻量级引用。对原始形状/路径/视觉样式的更改会影响所有实例。
<use> 元素可以引用特定形状、<g>roup 形状,甚至是整个 <svg> 文档。
要创建不单独显示的特殊源图形,您可以使用<symbol>(具有viewBox),或将任何内容放在<defs> 部分(例如<g> )。
这是一个使用符号和<use> 在地图上放置相同标记的示例:
http://www.carto.net/svg/samples/symbol.shtml
【讨论】: