<object data = "img/img.svg" type = "image/svg + xml">...
"path"
的标记"fill"
。"fill"
使用不同的颜色。
有必要像div.red #pathId {fill: red}
和div.green #pathId {fill: green}
.red
和.green
在SVG中不可用,并且=&gt;它不适用)有没有使用JS的解决方案?
(使用JS,我们可以通过.contentDocument
获取SVG的内容并设置fill属性)
答案 0 :(得分:0)
如果SVG是HTML-DOM的一个元素,您只能访问SVG:
<div class="svg">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="566.93px" height="1133.858px" viewBox="0 0 566.93 1133.858" enable-background="new 0 0 566.93 1133.858" xml:space="preserve">...</svg>
</div>
这是我的一个项目的html片段。在全局CSS中有一些基本的风格:
.svg {
height: 400px;
width: 400px;
}
svg {
height: 100%;
width: 100%;
}
要包含SVG,我使用以下机制:
HTML:
<div class="svg" data-svgpath="img/img.svg"></div>
JS:
function loadSvg(container) {
if (container.dataset.svgpath) {
$(container).load(container.dataset.svgpath, function(resp, status, xhr) {
container.classList.add('is-loaded');
});
}
}
加载SVG并注入DOM:
$('.svg').each(function() {
loadSvg(this);
});
这是我在项目中所做的简短总结,它就像一个魅力。我可以通过全局css和js访问,因为我也操纵了SVG中组的可见性。
内联svg的浏览器支持非常好:http://caniuse.com/#feat=svg-html5
编辑: 啊,我的错误:你正在寻找没有JS的解决方案。嗯,对不起,但它可能对你或其他人有帮助。
侨 拉尔夫