When an SVG is directly included in a document using the <svg> tag, you can apply CSS styles to the SVG via the document’s stylesheet. However, I am trying to apply a style to an SVG which is embedded (using the <object> tag).
Is it possible to use anything such as the following code?
object svg {
fill: #fff;
}
Short answer: no, since styles don’t apply across document boundaries.
However, since you have an
<object>tag you can insert the stylesheet into the svg document using script.Something like this, and note that this code assumes that the
<object>has loaded fully:It’s also possible to insert a
<link>element to reference an external stylesheet:Yet another option is to use the first method, to insert a style element, and then add an @import rule, e.g
styleElement.textContent = "@import url(my-style.css)".Of course you can directly link to the stylesheet from the svg file too, without doing any scripting. Either of the following should work:
or:
Update 2015: you can use jquery-svg plugin for apply js scripts and css styles to an embedded SVG.