Html 将样式应用于导入的SVG
我有一个数据库,它输出一个对象,其中引用了一个SVG。在这个SVG中,我有一个外部样式表,我想做的是引用这个SVG导入的样式表中的类,这样我就可以适当地为图标着色 目前,它似乎根本无法识别对象的类别,我想知道这是否可能 或者,是否有任何方法可以将动态命名的id或类应用于通过对象导入的部分svg代码,然后使用样式表引用这些代码 以下是HTML的一个片段:Html 将样式应用于导入的SVG,html,css,svg,Html,Css,Svg,我有一个数据库,它输出一个对象,其中引用了一个SVG。在这个SVG中,我有一个外部样式表,我想做的是引用这个SVG导入的样式表中的类,这样我就可以适当地为图标着色 目前,它似乎根本无法识别对象的类别,我想知道这是否可能 或者,是否有任何方法可以将动态命名的id或类应用于通过对象导入的部分svg代码,然后使用样式表引用这些代码 以下是HTML的一个片段: <object class="getFit" type="image/svg+xml" data="../images/well-bein
<object class="getFit" type="image/svg+xml" data="../images/well-being/imageurl">
Your browser does not support SVG</object>
使用对象时,内容仅限于其文档 你想做的事情更复杂。 但这是可能的。
如果每个图标都有一个css文件,那么在加载svg文档时,可以使用javascript将样式表添加到svg文档中
var svgobject = document.getElementsByClassName(".getFit");
for (var i=0; i<svgObject.length; i++)
var svgDoc = svgObject[i].contentDocument;
var linkElm = svgDoc.createElementNS("http://www.w3.org/1999/xhtml", "link");
linkElm.setAttribute("href", "getFitStyle.css");
linkElm.setAttribute("type", "text/css");
linkElm.setAttribute("rel", "stylesheet");
svgDoc.getElementById("where-to-insert").appendChild(linkElm);
}
var svgobject=document.getElementsByClassName(“.getFit”);
对于(var i=0;iHi@persijn),我将试一试。我确实看了robert longson强调的问题,但我可能只是没有像我应该读的那样彻底。
@charset "utf-8";
/* CSS Document */
.getFit path, object.getFit circle
{
fill:#ff5000;
}
.eatWell path, object.eatWell circle
{
fill:#009F14;
}
.feelGood path, object.feelGood circle
{
fill:#ffc200;
}
var svgobject = document.getElementsByClassName(".getFit");
for (var i=0; i<svgObject.length; i++)
var svgDoc = svgObject[i].contentDocument;
var linkElm = svgDoc.createElementNS("http://www.w3.org/1999/xhtml", "link");
linkElm.setAttribute("href", "getFitStyle.css");
linkElm.setAttribute("type", "text/css");
linkElm.setAttribute("rel", "stylesheet");
svgDoc.getElementById("where-to-insert").appendChild(linkElm);
}