将多个元素存储在SVG&用它们作为CSS背景?

时间:2011-04-16 23:15:51

标签: css css3 svg

我想知道我是否可以在一个SVG文件中创建多个“画笔”并在我的CSS中使用它们。

现在我有一个SVG文件,其中有一个存储在“defs”中的渐变和一个绘制它的矩形。然后我将这个SVG文件用作我的CSS中的背景图像。它运作良好,但我宁愿没有一百万个独立的SVG文件。我想在单个SVG文件中将“画笔”组合在一起,就像CSS sprites或XAML一样。

有办法做到这一点吗?如果是这样,为CSS背景图像指定哪个SVG元素来使用svg文件的语法是什么?

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

理论上是的,这应该是可能的。它尚未在w3c规范中完全定义,并且实现在此阶段确实有所不同。

请注意,svg本身允许special fragment syntax,因此理论上您应该能够链接到同一svg文件的不同视图。这可以用来做CSS / SVG精灵。

直接链接到嵌套的svg片段的id(或svg中的任何其他元素)是需要进一步指定的。

假设链接来自CSS背景属性的片段有效,那么使用XHTML(将结果文件作为application / xhtml + xml提供)的可能性就是在主文档中直接包含svg资源,从而消除了需要对于许多单独的文件。如果您希望将svgs保持独立以进行编辑,则可以将其作为预发布构建步骤来完成。另一种可能性是使用data uris

答案 1 :(得分:1)

我也在寻找同样的东西,以下是我能找到的指示:

根据caniuse.com的说法,浏览器支持存在问题,但这并不妨碍您尝试观察未来的浏览器演变(希望将来他们都支持这一显而易见的功能)。