ホームページ > ウェブフロントエンド > 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 スタイル

を使用して、ドキュメントに直接含まれる SVG に CSS スタイルを適用します。タグは簡単です。ただし、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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート