2013-03-10 60 views
2

我想知道有没有办法重新使用SVG文件?有没有办法重新使用SVG文件?

我的意思是,我的标题SVG文件在我的标题区域,整件事情都设置为黑色,我可以在不同颜色的页脚区域使用完全相同的文件吗?或者我必须为此创建另一个SVG文件?

+0

指定“html”标签,如果它是相关的。 – 2013-03-10 10:45:56

+1

一种方法是通过服务器的脚本语言提供服务,并添加一个查询字符串以修改徽标的某些属性(例如颜色)。这将节省您不得不维护几个类似的文件副本。 – halfer 2013-03-10 11:46:55

+1

针对@ halfer的想法,您将SVG的颜色设置为独特的文本(例如'%myLogoColor%'),然后使用服务器端脚本将'$ myLogoColor $'替换为您可能需要的任何内容。 – Kroltan 2013-03-10 12:15:15

回答

1

假设你有你的SVG嵌入SVG标签(未在img标签)的HTML看起来有点像:

<header> 
    <svg xmlns="http://www.w3.org/2000/svg"> 
    <path d="..." class="logo_fill"> 
    </svg> 
<header> 

<footer> 
    <svg xmlns="http://www.w3.org/2000/svg"> 
    <path d="..." class="logo_fill"> 
    </svg> 
<footer> 

然后,在你的CSS中,你可以声明:

header svg .logo_fill { 
    fill: red; 
} 

footer svg .logo_fill { 
    fill: gray; 
} 
+0

这可能工作,但我的标志包含很多不同的元素,不只是路径,它有路径,圆圈,线条等,这是否意味着我必须添加类标记到我拥有的每个元素? – hyperexpert 2013-03-11 19:34:40

+0

另外我的svg文件是外部文件,我用标记打电话给它,是否更好地使它在线? – hyperexpert 2013-03-11 19:37:05

+0

如果我有选择,我不会让它内联。对象标签可能没问题,具体取决于您的特定场景。请参阅此主题以获取W3C SVG入门的链接。 http://stackoverflow.com/questions/4476526/do-i-use-img-object-or-embed-for-svg-files本教程还讨论了一些选项。 http://edutechwiki.unige.ch/en/Using_SVG_with_HTML5_tutorial – raybiss 2013-03-11 21:15:17

1

SVG是XML,所以它可以重复使用“按设计”。正如@halfer和@Kroltan已经指出的那样,您可以使用服务器端语言来更改徽标颜色。

如果您无法访问服务器端,您还可以使用客户端脚本甚至XSLT来执行此操作。

看到这个线程作为首发...... Changing SVG image color with javascript