首頁 >web前端 >css教學 >CSS 樣式是否可以套用於使用 `` 標籤嵌入的 SVG?

CSS 樣式是否可以套用於使用 `` 標籤嵌入的 SVG?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-24 22:16:15708瀏覽

Can CSS Styles Be Applied to SVGs Embedded Using the `` Tag?

將CSS 樣式應用於嵌入的SVG

使用 將SVG 直接包含到文件中時標籤,可以透過文件的樣式表對其進行樣式設定。然而,問題出現了:類似的樣式是否可以套用於使用 嵌入的 SVG?

簡短回答:否

CSS 樣式不能跨越文檔邊界,包括主文檔和嵌入的 SVG 之間的邊界。

替代解決方案

由於涉及標籤時,您可以使用 JavaScript 將樣式表插入 SVG 文件中。這是一個範例(假設 已完全載入):

var svgDoc = yourObjectElement.contentDocument;
var styleElement = svgDoc.createElementNS("http://www.w3.org/2000/svg", "style");
styleElement.textContent = "svg { fill: #fff }"; // style as desired
svgDoc.getElementById("where-to-insert").appendChild(styleElement);

此外,您可以插入一個元素到外部樣式表:

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);

直接連結

您也可以直接從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>

附加選項:JQuery-SVG外掛程式

自2015 年起,您可以使用jquery-svg 插件將JS 腳本和CSS 樣式套用到嵌入式SVG。

以上是CSS 樣式是否可以套用於使用 `` 標籤嵌入的 SVG?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn