ホームページ > ウェブフロントエンド > CSSチュートリアル > CSS スタイルは、「 」タグを使用して埋め込まれた SVG に適用できますか?

CSS スタイルは、「 」タグを使用して埋め込まれた SVG に適用できますか?

Mary-Kate Olsen
リリース: 2024-12-24 22:16:15
オリジナル
746 人が閲覧しました

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

埋め込まれた SVG に CSS スタイルを適用する

を使用して SVG をドキュメントに直接組み込む場合タグを使用すると、ドキュメントのスタイルシートを介してスタイルを設定することができます。ただし、 を使用して埋め込まれた SVG に同様のスタイルを適用できるかという疑問が生じます。 tag?

短い答え: いいえ

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 中国語 Web サイトの他の関連記事を参照してください。

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