SVGをウェブページに追加する最も簡単な方法は、<svg>タグをインラインで直接記述するか、<img>要素を追加してsrc属性でSVG画像を参照することです。
SVGファイル直接に使用すると、SVGの色を変えたい時は少しややこしいです。(編集ソフトを使用して、書き直す必要があります。)
(<img> 要素を使用してインポートした場合、CSSだけで色を変更することはできません。)
単色を変えたい場合:
css実装例:
#svgID path{
fill: red;
}
このようにすればcssでpath要素の色を簡単に変更できるだと思いますが、グラデーションをかけたい場合はSVGファイル自体を修正しなければなりません。そこでもう一つの方法を紹介します。
DIV要素をカスタムシェイプに:
SVGインラインで直接記述するより、DIV要素の形をSVGにすれば、色々カスタマイズができます。今回は外部SVGを参照して、cssで色をグラデーションにします。
divといえば、多くの人のイメージには長方形や正方形しかありません。しかしdivを他の形にすることができます。この時はmask-imageを使います。
(単純にdivの形を変えたい場合はclip-pathも出来ますが、今回の主旨と違いますので詳細は割愛させていただきます)
HTML実装例:<div class=”svgShape”></div>
css実装例:
(widthとheightはsvgのサイズに合わせてください)
.svgShape {
width: 500px;
height: 500px;
background: linear-gradient(45deg, black, transparent);
mask-image: url('/img/sample.svg');
}
このように実装すれば、divはsvgの形に変えられ、色はcssでカスタマイズできます。
実装例:
refrence: