Jawaban singkatnya: tidak, karena gaya tidak berlaku di seluruh batas dokumen.
Namun, karena Anda memiliki file <object>
tag, Anda dapat memasukkan stylesheet ke dalam dokumen svg menggunakan skrip.
Sesuatu seperti ini, dan perhatikan bahwa kode ini mengasumsikan bahwa <object>
telah dimuat sepenuhnya:
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);
Dimungkinkan juga untuk memasukkan <link>
elemen untuk mereferensikan stylesheet eksternal:
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);
Opsi lainnya adalah menggunakan metode pertama, untuk menyisipkan elemen gaya, dan kemudian menambahkan aturan @import, mis styleElement.textContent = "@import url(my-style.css)"
.
Tentu saja Anda dapat langsung menautkan ke stylesheet dari file svg juga, tanpa melakukan skrip apa pun. Salah satu dari berikut ini seharusnya berfungsi:
<?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>
atau:
<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>
Pembaruan 2015: Anda dapat menggunakan plugin jquery-svg untuk menerapkan skrip js dan gaya css ke SVG yang disematkan.