从HTML文件引用SVG文件中的元素的正确方法是什么?

从HTML文件引用SVG文件中的元素的正确方法是什么?,svg,Svg,我正在尝试为一个网站构建一个按钮集合。由于按钮共享多个属性(颜色和效果),我决定使用SVG。为了减少HTTP请求,我尝试在同一个SVG文件中嵌套几个元素和过滤器。其思想是通过简单地使用标记实例化这些元素来构造所有按钮、切换开关等 在读了像这样伟大的文章之后,我仍然不能做这样的事情。我发现自己被卡住了。所以我决定在下面的代码片段中尽可能地简化这个问题 svg, img, 反对{ 宽度:50px; 高度:50px; 边框:1px纯黑; } h3{ 边缘顶部:50px; } 游泳蔬菜。让我发疯的俱

我正在尝试为一个网站构建一个按钮集合。由于按钮共享多个属性(颜色和效果),我决定使用SVG。为了减少HTTP请求,我尝试在同一个SVG文件中嵌套几个元素和过滤器。其思想是通过简单地使用标记实例化这些元素来构造所有按钮、切换开关等

在读了像这样伟大的文章之后,我仍然不能做这样的事情。我发现自己被卡住了。所以我决定在下面的代码片段中尽可能地简化这个问题


svg,
img,
反对{
宽度:50px;
高度:50px;
边框:1px纯黑;
}
h3{
边缘顶部:50px;
}
游泳蔬菜。让我发疯的俱乐部。
这是一个内联SVG。
这里的情况和预期的一样。g元素“pool”和“orange”会显示,而符号id=“tomato”不会显示。太好了

这是一个SVG,用于引用上述内联SVG中的元素。 注意,这里显示的符号id=“tomato”元素与g元素“pool”类似。“橙色”元素未被使用。很好。预期的行为

这是一个SVG作为IMG放置。 对我来说效果很好,没有符号id=“番茄”是一种冲动的行为。但我不想这样使用SVG

不幸的是,IMGUR不接受SVG,我也没有找到一个可以接受SVG文件的图像共享平台。“club.svg”文件的内容与此HTML片段末尾的注释代码相同。SVG文件位于HTML文件的同一文件夹中。很抱歉给您带来不便:(

这是一个SVG,作为一个对象 这正如预期的那样有效

同样,“club.svg”文件内容在这个HTML片段的内部和末尾显示为注释

尝试从对象SVG提取元素失败 浏览器忽略了文件名后的“#番茄”。是否可以这样提取/操作SVG文件中的元素?如果可以,如何提取/操作

这是一个SVG作为外部引用。 这是我从外部源(在本例中为“club.svg”)克隆/操作元素的首选方法。不幸的是,它不适合我。它不克隆元素。我做错了什么

下面是club.svg内容(在代码段中有注释)。
这里有一个external的例子:有一件事我不明白,你的例子帮助我弄明白了,那就是SVG文件中没有xlink名称空间声明。我读了下面的文章,现在我已经解决了它。-use-元素仍然没有“抓取”元素的ID。我将继续查找发生了什么。感谢您的提示;)这里有一个外部的示例:有一件事我不理解,您的示例帮助我弄清楚,就是SVG文件中没有xlink名称空间声明。我读了下面的文章,现在我把它修好了。但是-use-element仍然没有通过它们的ID“抓取”元素。我会继续寻找到底发生了什么。谢谢你的提示;)