我正在努力弄清楚如何通过将 *.svg 文件放置在我的 HTML 站点中的不同位置来重用它们的正确方法,但在不使用 JavaScript 的情况下应用不同的样式表。
来自 index.html 的片段:
<OBJECT type="image/svg+xml" data="myLogo.svg" class="svglogo">
<img src="svglogo_fallback.png">
</OBJECT>
myLogo.svg:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" class="mySvg" id="test" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="841.89px" height="595.28px" viewBox="0 0 841.89 595.28" enable-background="new 0 0 841.89 595.28" xml:space="preserve">
<defs>
<style type="text/css"><![CDATA[
.mySvg .teste {
fill: red;
}
]]></style>
</defs>
<path class="teste" fill="#000000" d="abcdefg"/>
</svg>
在 *.svg 中看到的一种可能性是使用 CSS 将填充更改为红色,这非常有效,但也意味着每个嵌入的 myLogo.svg 都会变成红色。
有什么方法可以在不使用 JavaScript 的情况下为嵌入对象分配正确的 CSS 样式?