SVGを操作するためのCSSプロパティまとめ

SVGの操作をするとき、普段はあまり使わない(見慣れない)CSSプロパティを使うことになるので、操作しようとする度に忘れてしまいます。
今回は自分の備忘録も兼ねて、SVGを操作するためのCSSプロパティをまとめました。
塗りの指定
fill:塗りの色を指定
fillを使うとSVGの塗りを指定できます。
ただし、SVG自体にfillが指定されていると、CSSで上書きができなくなってしまうので、反映されない場合はSVGのコード内を見て確認するようにしましょう。
他にも、:hoverなどの疑似クラスや、CSSアニメーションで値を変えていくことも可能です。
See the Pen XWrRwaW by Masakazu Saito (@31mskz10) on CodePen.
また、「塗り」であるため、短形や円形だと指定できますが、ラインなどには指定しても反映されないので注意が必要です。
fill-opacity:塗りの透明度を指定
fill-opacityでは塗りの透明度を指定できます。
See the Pen SVG:fill-opacity by Masakazu Saito (@31mskz10) on CodePen.
通常のopacityだと指定した要素全体に加えて、子要素も全て透明になってしまいますが、fill-opacityでは塗りだけが変わります。
アウトラインの指定
stroke:アウトラインの色を指定
fillが塗りなのに対して、strokeはアウトラインの色を設定します。
See the Pen SVG:stroke by Masakazu Saito (@31mskz10) on CodePen.
stroke-opacity:アウトラインの透明度を指定
fill-opacityと同様に、stroke-opacityでアウトラインの透明度指定も可能です。
See the Pen SVG:stroke-opacity by Masakazu Saito (@31mskz10) on CodePen.
stroke-width:アウトラインの太さを指定
stroke-widthではアウトラインの太さを指定できます。
単位なしでも表示され、「px」「em」「%」などひと通りの単位は使えます。
See the Pen SVG:stroke-width by Masakazu Saito (@31mskz10) on CodePen.
あまり太くしすぎると、viewBoxからはみ出して見切れてしまうので注意が必要です。
stroke-dasharray:アウトラインを破線にする
stroke-dasharrayを使うと、アウトラインを点線や破線にできます。
点線の長さと間隔の長さをコンマまたはスペースで区切ることで、設定できます。
See the Pen SVG:stroke-dasharray by Masakazu Saito (@31mskz10) on CodePen.
stroke-dashoffset:パスの最初の位置を指定
stroke-dashoffsetを使うと、アウトラインパスの最初の位置を指定できます。
破線の位置を調整するのにも使用したりしますが、CSSアニメーションでstroke-dashoffset: 0;に向かってアニメーションするように指定すると、パスをその方向から動かすことができます。
See the Pen SVG:stroke-dashoffset by Masakazu Saito (@31mskz10) on CodePen.
stroke-linecap:線の端の設定
stroke-linecapを使うと、線端の設定ができます。
設定できる値は下記の通りです。
| 値 | 形 |
|---|---|
| butt | 端が線の長さと等しくて平ら(デフォルト) |
| round | 端が丸くなる |
| square | 端が四角くなる(線の長さより長くなる) |
See the Pen SVG:stroke-linecap by Masakazu Saito (@31mskz10) on CodePen.

Visual Studio Codeでパス補完機能を細かく設定して自分好みにできる拡張機能「Path Autocomplete」
Mac向けのミニマルでお洒落なデザインのGitクライアント「Gitfox」
コーディング時のclass名の省略はどこまでして良いのか?「img / btn / ttl / desc / thumb」
CSSでclassがついていないタグにだけスタイルを当てる方法
WordPressの常時SSL化で、下層ページのhttpからhttpsへのリダイレクトがうまくいかない場合に確認すること
スクロールしてもテーブルヘッダーが追尾するテーブルの作り方
Google Maps APIをローカル開発環境で使用するときの制限設定方法
ウェブ上でLaTeXで数式をキレイにプレビューするJavaScriptライブラリ「MathJax」
Nuxt.jsで「Classic mode for store/ is deprecated and will be removed in Nuxt 3.」のエラーメッセージが表示される場合の対処法
Bracket Pair ColorizerでVisual Studio Codeの括弧を色分けして見やすくする
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
BetterTouchToolの設定ファイルをエクスポート・インポートする方法
W3 Total Cacheをレスポンシブデザインのテーマで使用する時の注意ポイント!!【WordPress】
思考したり情報整理したい時はMarkdown記法で文章を書き出そう!!Webデザイナーの情報整理術
Keyboard MaestroのThird Party Plug Insの作り方
QuickTime Playerで動画のトリミングを行う方法
Backlogフリープランでプライベートの課題管理を行う方法
Keyboard MaestroでMacログイン時にアプリの遅延起動を行う
Photoshopでファイルを開いたとき「予期せずにファイルの末尾に達しました。」と表示される場合の対処法
CSS Nite in Kobe, vol.39「ウェブサイトの分析とGoogleアナリティクス活用・カイゼンのノウハウを学ぼう」に参加してきました
Dashで「Secure Input is Enabled」と表示される場合の対処法