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

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

Susan Sarandon
發布: 2024-12-21 18:37:16
原創
106 人瀏覽過

Can CSS Styles Be Applied to SVGs Embedded within an `` Tag?

嵌入式 SVG 的 CSS 樣式

使用 將 CSS 樣式套用到直接包含在文件中的 SVG標籤很簡單。然而,如果 SVG 嵌入到 中,標籤,這種方法有缺陷。 CSS 樣式可以套用在嵌入的 SVG 嗎?

簡短回答:否

CSS 樣式不會遍歷文件邊界。 在這種情況下,標籤有效地在包含文件和嵌入的 SVG 之間建立了邊界。

替代方法

幸運的是,還有其他方法來設定嵌入式 SVG 的樣式:

1。程式設計樣式表插入:

使用 JavaScript,可以將樣式表直接插入 內的 SVG 文件中。標籤。這假設 是已滿載。

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

2.外部樣式表引用:

A 可以插入元素來引用外部樣式表:

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);
登入後複製

3. CSS 導入(@import規則):

第一種方法可用於插入樣式元素,然後新增@import 規則:

styleElement.textContent = "@import url(my-style.css)";
登入後複製

4.直接SVG 樣式表連結:

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">
  ... (SVG content) ...
</svg>
登入後複製

5. jquery-svg 外掛:

jquery-svg 外掛提供了另一種將JavaScript 和CSS 樣式應用於嵌入式SVG 的方法。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板