動的な色切り替えの実装コードをサポートするために、CSS で SVG 画像を参照します。

動的な色切り替えの実装コードをサポートするために、CSS で SVG 画像を参照します。

表示する svg 画像を追加すると、React はファイルが見つからないというメッセージを表示します。

グローバル ファイル global.d.ts にイメージ タイプの宣言を追加できます。

詳細については、「TypeScript でリソース ファイルを参照した後に見つからないというメッセージが表示される」を参照してください。

宣言後、参照はエラーを報告しません。次に、色やその他の設定が含まれる svg 画像を確認します。

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<svg 幅="24px" 高さ="24px" ビューボックス="0 0 24 24" バージョン="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <title>ウィンドウ_リターン</title>
    <g id="control" ストローク="なし" ストローク幅="1" 塗りつぶし="なし" 塗りつぶしルール="偶奇">
        <g id="window_return">
            <rect id="Rectangle-6" fill="#D8D8D8" 不透明度="0" x="0" y="0" 幅="24" 高さ="24"></rect>
            <path d="M8.35417135,12.9957726 C8.13320936,12.7345458 8,12.3967967 8,12.0279541 C8,11.6586058 8.13357489,11.3204363 8.3550807,11.0590615 L8.3521103,11.0564202 L14.356041,4.51971371 L14.3599873,4.52318728 C14.635253,4.20288524 15.0434555,4 15.4990737,4 C16.3280124,4 17,4.67157288 17,5.5 C17,5.8870199 16.8533375,6.23980607 16.6125263,6.50587693 L16.6210783,6.51340439 L11.5390798,12.0228281 L16.5124905,17.3935277 C16.8121157,17.6677653 17,18.0619548 17,18.5 C17,19.3284271 16.3280124,20 15.4990737,20 C15.0262153,20 14.6044287,19.7814702 14.3293154,19.439953 L8.35278214,12.9970098 L8.35417135,12.9957726 L8.35417135,12.9957726 Z" id="Oval-43-Copy-3" fill="#808080"></path>
        </g>
    </g>
</svg>

SVG に基づいて異なる効果を表示することは可能ですか?たとえば、マウスオーバー後にハイライトする

理論的には、XML コード解析を追加し、SVG レンダリングをコンポーネントとして追加することは可能です。

インターネットを閲覧した後、それらのほとんどはあまり実用的ではないことがわかりました。それらの多くはグローバルイメージをロードし、それらを個別のコンポーネントまたはキャッシュとして使用しますが、これは適切ではありません。

反応インラインvg

かなり良いオープンソースを見つけました。とても良いので、お勧めです!

https://github.com/gilbarbara/react-inlinesvg

インストール: npm i react-inlinesvgまたはyarn addreact-inlinesvg

参照を追加します: import SVG from 'react-inlinesvg';

写真を追加:

'../../../../assets/images/back.svg' から BackPng をインポートします。
<SVG className="backIcon" src={BackPng} />

動的スタイルを設定するには:

&:ホバー{
    パス {
      塗りつぶし: #4ecb78;
    }
    .backContent{
      色: #4ecb78;
    }
  }
  &:アクティブ {
    パス {
      塗りつぶし: #2baf57;
    }
    .backContent{
      色: #2baf57;
    }
  } 

これで、CSS で svg 画像を参照して動的なカラー切り替えをサポートする実装コードに関するこの記事は終了です。より関連性の高い css svg 動的なカラー切り替えコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

<<:  DIV の一般的なタスク (パート 1) — 一般的なタスク (スクロール バーの表示、div の非表示、イベント バブリングの無効化など)

>>:  JavaScript プロトタイプの詳細

推薦する

Linux での MySQL 5.7 の導入とリモート アクセス構成

前書き: 最近、私はパートナーとチームを組んで .NET Core プロジェクトに取り組む予定です。...

Vue 組み込みコンポーネントのキープアライブでの LRU アルゴリズムの使用

目次Vue の keep-alive 組み込みコンポーネントの使用でもこのアルゴリズムが使用されます...

CSS グリッドレイアウトの完全ガイド

Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...

Zabbix は DingTalk のアラーム機能を画像付きで設定します

実装のアイデア:まず、アラーム情報にはitemidが必要です。これは前提条件です。情報に渡されるパラ...

MySQLにインデックスを追加する方法

インデックスの簡単な紹介は次のとおりです。インデックスを追加する目的は、データベース クエリのパフォ...

MySQL を使用した分散ロックの実装

導入分散システムでは、分散ロックは最も基本的なツール クラスです。たとえば、支払い機能を備えた 2 ...

jsのディープコピーを理解しましょう

目次js ディープコピーデータ保存方法浅いコピー/深いコピーとは何か一般的なディープコピーの実装1....

Vue の下部ナビゲーション バー TabBar を実装するための非常に詳細なチュートリアル

目次プロジェクト紹介:プロジェクトディレクトリ: TabBar 効果のプレビュー: TabBar 実...

mysql のインデックスと FROM_UNIXTIME に関する問題

ゼロ、背景今週の木曜日にたくさんのアラートを受け取りました。DBA に確認を依頼したところ、遅いクエ...

Web デザイン体験: 5 つの優れた Web デザイン コンセプトの完全分析 (画像)

他の種類のデザインとは異なり、Web デザインは時代の発展とともに常に変化しています。したがって、W...

Docker はすべてのコンテナをバッチ起動して閉じます

Dockerの場合すべてのコンテナコマンドを開始する docker を起動します $(docker ...

HTMLページ間で値を渡す問題の解決策

初めてこのエッセイを使ったとき、私はかなりぎこちなく感じましたhtmlファイルコードをコピーコードは...

Python ベースの MySQL レプリケーション ツールの詳細な説明

目次1. はじめに2回目の練習2.1 インストールと設定2.2 コアクラスの紹介2.3 使い方は? ...

文字列の GBK および GB2312 エンコードとデコードのフロントエンド実装 (概要)

序文プロジェクトを開発しているときに、かなり厄介な問題に遭遇しました。この製品では、判断のためにブラ...

Win10 での MySQL 8.0.15 のインストールと設定のチュートリアル

最近私が学んでいるのは MySQL の知識なので、MySQL をインストールすることが非常に重要です...