カテゴリ: HTML 更新日: 2026/05/23

HTML SVGアイコンをCSSで色変更する方法(fillとstroke)初心者向け完全ガイド

HTML SVGアイコンをCSSで色変更する方法(fill/stroke)
HTML SVGアイコンをCSSで色変更する方法(fill/stroke)

先生と生徒の会話形式で理解しよう

生徒

「SVGアイコンの色って、どうやって変えるんですか?」

先生

「SVGは画像の一種ですが、CSSで色を自由に変更できるのが大きな特徴ですよ。」

生徒

「画像なのに色が変えられるんですか?」

先生

「はい。特にfillとstrokeという指定を使えば、簡単に色を変更できます。基本から一緒に見ていきましょう。」

1. HTMLで使うSVGアイコンとは

1. HTMLで使うSVGアイコンとは
1. HTMLで使うSVGアイコンとは

HTMLで使うSVGアイコンとは、拡大してもぼやけないベクター形式の画像です。通常のPNGやJPEG画像とは違い、点と線の計算で描かれているため、画面サイズが変わってもきれいに表示されます。Webデザインやレスポンシブ対応のWebサイト制作では、SVGアイコンはとても重要な存在です。

さらに、SVGはHTMLの中に直接書くことができるため、CSSで色変更やサイズ変更が簡単にできます。これがPNG画像との大きな違いです。SEO対策の観点からも、HTML構造の中にSVGを書くことで検索エンジンに正しく内容を伝えやすくなります。

2. fillとstrokeの意味をやさしく理解する

2. fillとstrokeの意味をやさしく理解する
2. fillとstrokeの意味をやさしく理解する

SVGアイコンの色変更で重要になるのがfillとstrokeです。fillとは塗りつぶしの色のことです。たとえば、折り紙を赤く塗るようなイメージです。一方strokeとは線の色です。輪郭線の色を変えるイメージになります。

つまり、図形の中身を塗るのがfill、ふちどりを描くのがstrokeです。HTMLとCSSでSVGアイコンの色を変更する場合、この二つを理解しておくことが基本になります。

3. HTMLに直接SVGを書いて色を変える方法

3. HTMLに直接SVGを書いて色を変える方法
3. HTMLに直接SVGを書いて色を変える方法

まずは、HTMLの中にSVGコードを直接書く方法です。この方法なら、CSSで自由に色変更ができます。初心者にもおすすめの方法です。


<svg width="100" height="100" class="icon-red">
    <circle cx="50" cy="50" r="40"></circle>
</svg>

<style>
.icon-red {
    fill: red;
}
</style>
ブラウザ表示

この例では、circleという丸い図形を作り、CSSでfillをredに指定しています。これでSVGアイコンの色変更ができます。HTMLとCSSの基本だけで操作できるのが魅力です。

4. strokeで線の色を変更する方法

4. strokeで線の色を変更する方法
4. strokeで線の色を変更する方法

次に、strokeを使って線の色を変更する方法を見てみましょう。輪郭だけを表示したいときに便利です。


<svg width="100" height="100" class="icon-line">
    <rect x="10" y="10" width="80" height="80"></rect>
</svg>

<style>
.icon-line {
    fill: none;
    stroke: blue;
    stroke-width: 5;
}
</style>
ブラウザ表示

fillをnoneにすることで中身を透明にし、strokeで線の色を青にしています。stroke-widthは線の太さです。SVGアイコンのデザイン調整ではよく使われます。

5. クラスを使って複数アイコンの色を一括変更する

5. クラスを使って複数アイコンの色を一括変更する
5. クラスを使って複数アイコンの色を一括変更する

Webサイト制作では、複数のSVGアイコンを同じ色にしたいことがあります。その場合はCSSクラスを活用します。これにより保守性が高まり、SEO対策としても整理されたHTMLになります。


<style>
.icon-green {
    fill: green;
}
</style>

<svg width="80" height="80" class="icon-green">
    <circle cx="40" cy="40" r="30"></circle>
</svg>

<svg width="80" height="80" class="icon-green">
    <rect x="10" y="10" width="60" height="60"></rect>
</svg>
ブラウザ表示

このようにクラスを使えば、SVGアイコンの色変更を一括管理できます。Webデザインやコーポレートサイト制作でもよく使われる方法です。

6. マウスをのせたときに色を変える方法

6. マウスをのせたときに色を変える方法
6. マウスをのせたときに色を変える方法

CSSのhoverを使うと、マウスをのせたときにSVGアイコンの色を変更できます。ボタンやナビゲーションメニューでよく使われるテクニックです。


<style>
.icon-hover {
    fill: gray;
}
.icon-hover:hover {
    fill: orange;
}
</style>

<svg width="100" height="100" class="icon-hover">
    <circle cx="50" cy="50" r="40"></circle>
</svg>
ブラウザ表示

通常時は灰色、マウスをのせるとオレンジ色に変わります。これにより、ユーザーに分かりやすい操作感を与えることができます。HTMLとCSSだけで実装できるため、初心者でも挑戦しやすい方法です。

7. imgタグで読み込んだSVGは色変更できるのか

7. imgタグで読み込んだSVGは色変更できるのか
7. imgタグで読み込んだSVGは色変更できるのか

HTMLでimgタグを使ってSVGファイルを読み込んだ場合、基本的にCSSでfillやstrokeを変更することはできません。なぜなら、外部画像として扱われるためです。SVGアイコンの色変更をしたい場合は、HTMLに直接SVGを書く方法を選ぶことが重要です。


<img src="icon.svg" width="100" height="100">
ブラウザ表示

この方法は表示はできますが、CSSで自由に色変更するには向いていません。SVGアイコンをカスタマイズしたい場合は、インラインSVGを使うのが基本です。

まとめ

まとめ
まとめ

今回は、HTMLでSVGアイコンを表示し、CSSで色変更する方法について、fillとstrokeの基本から実践的な使い方まで丁寧に確認しました。SVGアイコンはベクター形式の画像であり、拡大縮小しても画質が劣化しないという大きな特徴があります。Webデザインやレスポンシブ対応のホームページ制作、スマートフォン表示対応のサイト作成では欠かせない存在です。

SVGアイコンの色変更で重要になるのがfillとstrokeです。fillは図形の塗りつぶしの色を指定するプロパティであり、strokeは線の色や輪郭の色を指定するプロパティです。さらにstroke widthを使えば線の太さも調整できます。これらを理解することで、HTMLとCSSだけで自由にデザインをコントロールできるようになります。

特に大切なのは、SVGをHTMLに直接書くインラインSVGの方法です。imgタグで外部SVGファイルを読み込む方法では、基本的にCSSからfillやstrokeを変更することができません。SVGアイコンの色を動的に変更したい場合や、マウスオーバーで色を変えたい場合、ボタンやナビゲーションメニューで視覚的な変化をつけたい場合は、インラインSVGを使うことが基本になります。

また、class属性を活用することで、複数のSVGアイコンを一括で色変更することが可能になります。Web制作の現場では、ヘッダーやフッター、サイドバー、アイコン一覧などで同じデザインルールを適用することが多いため、CSSクラスによる管理は非常に重要です。保守性が高まり、デザイン変更にも柔軟に対応できます。

hoverを使った色変更も実務ではよく使われます。ボタンにマウスをのせたときに色を変えることで、ユーザーに操作できる要素だと伝えることができます。ユーザビリティ向上やクリック率改善にもつながります。HTML初心者の方でも、CSSの疑似クラスを理解すれば簡単に実装できます。

SVGアイコンの活用は、Webサイトの表示速度改善や軽量化にも貢献します。PNG画像やJPEG画像を大量に使うよりも、SVGを適切に使うことでファイルサイズを抑えることができます。結果としてページ表示速度の向上につながり、快適な閲覧環境を提供できます。

これからHTMLとCSSを学習する方は、まずは単純な円や四角形から始めて、fillやstrokeを変更する練習を繰り返してみてください。SVGアイコンの色変更は、Web制作の基礎力を高める重要な練習になります。繰り返し触れることで自然と理解が深まります。

サンプルプログラムで最終確認


<style>
.icon-summary {
    fill: gray;
    transition: 0.3s;
}
.icon-summary:hover {
    fill: red;
}
</style>

<h1>SVGアイコン色変更の最終確認</h1>

<svg width="120" height="120" class="icon-summary">
    <circle cx="60" cy="60" r="50"></circle>
</svg>
ブラウザ表示

上記のサンプルでは、通常時は灰色で表示され、マウスをのせると赤色に変化します。fillによる塗りつぶし指定とhover指定の組み合わせを理解することで、実践的なSVGアイコンデザインが可能になります。

先生と生徒の振り返り会話

生徒

今日はHTMLでSVGアイコンを使う方法と、CSSで色変更する方法を学びました。fillが塗りつぶしで、strokeが線の色という理解で合っていますか。

先生

はい、その通りです。SVGアイコンはベクター形式なので、拡大してもきれいに表示されますし、HTMLに直接書けばCSSで自由に色変更できます。

生徒

imgタグで読み込むと色変更が難しいという点も大事ですね。インラインSVGを使うことが重要だと分かりました。

先生

とても大事なポイントです。さらにclassを使えば複数アイコンをまとめて管理できます。Web制作では再利用性と保守性が重要です。

生徒

hoverで色を変えることで、ボタンやメニューの操作性も高められるのですね。実際に自分のサイトでも使ってみます。

先生

ぜひ繰り返し練習してください。HTMLとCSSの基礎をしっかり理解することが、質の高いWebサイト制作につながります。SVGアイコンの色変更を自在に扱えるようになれば、デザインの幅が大きく広がります。

2026年最新 スキルアップ・実践セミナー

「意味」がわかればWebは楽しい!現役エンジニアが教える、挫折しないためのHTML構造化入門

「Webの仕組み」を正しく操る。HTML5でプロフェッショナルな情報設計の第一歩を。

本講座では、単なるタグの暗記ではなく、「検索エンジンやAIに正しく伝わる情報の構造化」という本質的な技術を学びます。モダンWebの土台であるHTML5を通じて、将来的にWebデザイナーやフロントエンドエンジニアを目指すための「稼げる基礎力」を最短距離で身につけます。

具体的なワークショップ内容と環境

【つくるもの】
自己紹介やポートフォリオの土台となる「構造化されたWebページ」を作成します。見出し、段落、リスト、リンク、画像配置など、商用サイトでも必ず使われる「セマンティックなマークアップ」をゼロから体験してください。

【開発環境】
世界中のプロが愛用するVisual Studio Code (VS Code)を使用します。Emmet(高速入力機能)の設定から、HTMLの文法ミスを自動チェックする拡張機能まで、現場基準の効率的な環境を一緒に構築します。

この60分で得られる3つの武器

1. SEOに強い「意味のある」マークアップ

Googleから高く評価されるタグの選び方を理解し、検索上位を狙えるサイト構造の作り方を学びます。

2. VS Codeを使いこなす爆速コーディング

プロが使うショートカットや自動補完機能を習得し、タイピングの手間を最小限にする技術を体得します。

3. 2026年基準のWebアクセシビリティ

画像への代替テキストや適切な階層構造など、誰にとっても使いやすい「優しいWeb」の作り方を伝授します。

※本講座は、将来的にWebデザイナー、コーダー、フロントエンドエンジニアを目指す未経験者のためのエントリー講座です。「モクモク」独自のマンツーマン形式により、コードを1行書くたびに生まれる疑問をその場で解決します。

「意味」がわかればWebは楽しい!現役エンジニアが教える、挫折しないためのHTML構造化入門

現役エンジニアが教えるHTML入門

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
CSS
CSSでパディングを使ってコンテンツの内側に余白をつける方法!初心者でもわかるPaddingの基本
New2
Bootstrap
Bootstrapでテーブルのダークモードを最適化!罫線・ストライプ・ホバーを見やすく調整する方法
New3
Bootstrap
Bootstrapのボタンサイズとアクセシビリティ完全解説 初心者でもわかる.btn-smと.btn-lgの使い方
New4
CSS
CSSのマージン相殺(margin collapsing)とは?上下の余白が消える理由を初心者向けに解説!
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.2
Java&Spring記事人気No2
CSS
初心者向け!Webデザインに役立つ色彩心理学と配色の基本を徹底解説
No.3
Java&Spring記事人気No3
HTML
HTMLのimgタグの書き方|src・altの必須属性を初心者向けにやさしく整理
No.4
Java&Spring記事人気No4
Bootstrap
Bootstrap 5 のカラーと背景色を完全ガイド!初心者向け色の使い分け解説
No.5
Java&Spring記事人気No5
CSS
CSSでGoogle Fontsを使う方法を完全ガイド!初心者でもできるフォントの変更
No.6
Java&Spring記事人気No6
HTML
HTML iframeタグの使い方|外部ページ埋め込みの基本を初心者向けに解説
No.7
Java&Spring記事人気No7
Bootstrap
Bootstrap 5ボタン入門:.btn・.btn-primaryの種類とサイズ・形を初心者向けに完全解説
No.8
Java&Spring記事人気No8
CSS
CSSのレイアウト基本パターンを完全ガイド!初心者でもわかる2カラム・3カラムの作り方