संक्षिप्त उत्तर: नहीं, क्योंकि शैलियाँ दस्तावेज़ सीमाओं में लागू नहीं होती हैं।
हालाँकि, चूंकि आपके पास एक <object>
टैग है, आप स्क्रिप्ट का उपयोग करके svg दस्तावेज़ में स्टाइलशीट डाल सकते हैं।
कुछ इस तरह, और ध्यान दें कि यह कोड मानता है कि <object>
पूरी तरह से लोड किया गया है:
var svgDoc = yourObjectElement.contentDocument;
var styleElement = svgDoc.createElementNS("http://www.w3.org/2000/svg", "style");
styleElement.textContent = "svg { fill: #fff }"; // add whatever you need here
svgDoc.getElementById("where-to-insert").appendChild(styleElement);
<link>
बाहरी स्टाइलशीट को संदर्भित करने के लिए एक तत्व सम्मिलित करना भी संभव है :
var svgDoc = yourObjectElement.contentDocument;
var linkElm = svgDoc.createElementNS("http://www.w3.org/1999/xhtml", "link");
linkElm.setAttribute("href", "my-style.css");
linkElm.setAttribute("type", "text/css");
linkElm.setAttribute("rel", "stylesheet");
svgDoc.getElementById("where-to-insert").appendChild(linkElm);
फिर भी एक अन्य विकल्प पहली विधि का उपयोग करना है, एक शैली तत्व सम्मिलित करना है, और फिर एक @import नियम जोड़ें, उदा styleElement.textContent = "@import url(my-style.css)"
।
बेशक आप सीधे svg फ़ाइल से स्टाइलशीट से लिंक कर सकते हैं, वह भी बिना किसी स्क्रिप्टिंग के। निम्नलिखित में से किसी एक को काम करना चाहिए:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="my-style.css" type="text/css"?>
<svg xmlns="http://www.w3.org/2000/svg">
... rest of document here ...
</svg>
या:
<svg xmlns="http://www.w3.org/2000/svg">
<defs>
<link href="my-style.css" type="text/css" rel="stylesheet"
xmlns="http://www.w3.org/1999/xhtml"/>
</defs>
... rest of document here ...
</svg>
अद्यतन २०१५: आप एक एम्बेडेड SVG में js स्क्रिप्ट और css स्टाइल लागू करने के लिए jquery-svg प्लगइन का उपयोग कर सकते हैं ।