SVG Webアイコン 最短手順 レスポンシブ HTMLインライン書き込み CSS content読み込み

SVGはHTMLインライン書き込みもしくはCSS content読み込み

SVGはインライン spanで囲んでマークアップ
当然、HTMLはバカでかくなる
下記SVGアイコンサンプルの「chevrons-right」から「share-2」までの24個、および最後の「heart-handshake」はHTMLインライン処理
それ以外は「bookmark」から「paperclip」までがCSSのSVGコードを読み込み

SVGのカラー設定/変更は線のstrokeと塗りつぶしのfill

⌘ なお、Material Symbols and Icons はサイズもカラーもCSSで変更はイージー
SVGはHTML内インラインのコードで、width/heightを削除してCSSで変更可能、カラーもstrokeを削除してCSSで変更可能、fillはCSSのカラー設定は難しい(つまりsvgやpathのfillカラー設定は運次第…)
今回のようにHTML内インラインのコードを直接変更するなら、サイズやカラーも変更できる

SVGの設定はサイズ 線 塗りつぶし

SVGの最短手順の活用は、幅(width)と高さ(height)、描画線(stroke)、塗りつぶし(fill)の設定/変更
CSVコードのwidth / height / stroke / fillを直接編集するか、CSSで記述する


chevrons-right


pencil


calendar-time


clock


clock-2


category


tag


square-plus


circle-plus


heart-filled


heart


sitemap


home


home-2


star-filled


bookmark


star-half-filled


star-half


brand-apple


brand-android


brand-wordpress


world-www


browser


share-2


bookmark


coin-yen


currency-yen


credit-card


coin


currency-dollar


device-desktop


layout-grid


layout-grid-add


square-circle


paperclip


heart-handshake

SVGのカラーはコード直接または可能なかぎりCSSで

上記のSVGアイコンサンプルで、「star-half-filled」はHTML内インラインのコードで、2番目のpathのfillに直接カラー設定している
また「heart-handshake」は、CSS読み込みではうまくいかず、HTMLインラインでfillカラーを記述してやっと表示されるようになっている

SVG Webアイコン

レスポンシブで悩まないのがSVG(そのはず…)

Tabler Icons: over 4800 vector icons for web design

<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-seo" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
<path d="M7 8h-3a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-3"></path>
<path d="M14 16h-4v-8h4"></path>
<path d="M11 12h2"></path>
<path d="M17 8m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"></path>
</svg>
Tabler IconsでSVGを選択してコードをコピー

これを、下記ページで圧縮

SVG最適化 コンパクト化

<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-seo" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M7 8h-3a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-3"/>
<path d="M14 16h-4v-8h4"/>
<path d="M11 12h2"/>
<path d="M17 8m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"/>
</svg>

HTMLインライン書き込み

上記の圧縮SVGコードの赤の箇所青の箇所紫(バイオレット)の箇所を削除してHTMLの所定の箇所に貼り付ける
CSSでサイズ変更するためにspanでマークアップする

<span><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-seo" viewBox="0 0 24 24" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M7 8h-3a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-3"/>
<path d="M14 16h-4v-8h4"/>
<path d="M11 12h2"/>
<path d="M17 8m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"/>
</svg></span>

HTMLインラインSVGのサイズやカラーのCSS記述は

要素名 span {
display: inline-block;
width: 48px;
height: 48px; }
要素名 span svg {
fill: #EA4335;
stroke: #4285F4;
}

CSS content読み込み

圧縮SVGコードの紫(バイオレット)の箇所(stroke)は、CSSのcontent側でstrokeカラー設定のために残して、下記のように記述

要素名 {	content: url( 'data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-seo" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<path d="M7 8h-3a1 1 0 0 0 -1 1v2a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-3"/>
<path d="M14 16h-4v-8h4"/>
<path d="M11 12h2"/>
<path d="M17 8m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"/>
</svg>' ); }

strokeのところは「stroke=”red”」やら「stroke=”#FF0000″」などカラーコードに書き換え

HTMLインライン書き込みがおすすめのSVG活用法

SVGのインライン書き込みであれば、サイズ設定はもとより、strokeのカラー設定もほぼ可能、fillも設定できる可能性があり、ダメな場合はHTMLインラインのSVGコードを書き直すだけ

SVGはGoogleアイコンやロゴも

これらのSVGの取り扱い、サイズやカラー設定などは、SVG本体はもとより、Material Symbols and IconsもCSV(pngも)を提供しており、いろいろなロゴはSVGが提供されていることも多い

SVGはテキストベースのベクター画像なので、4K・DPR:3や、レスポンシブなどで表示も画質?も悩まない

ちなみに、上述の見出しアイコン「HTML」と「CSS」は、Material Symbols and Iconsのアイコンフォントでは意図したとおりの表示にならないので、緊急避難措置としてMaterial Symbols and IconsのSVGで height/width/fillを設定し、HTML内インラインで仕込んでいる
また「SVG」は、そもそもMaterial Symbols and Iconsにはないので、SVGを記述している

SVGは、脱レガシーWeb、モダンWeb最適のツールとなる

お役立ち
新着
注目

モダンWeb! WP最新テーマ
レガシーWeb? 掃討作戦!!

【モダンWebとは】
モバイルファースト・最新HTML/CSS3・スマホアプリ・WebP・JSON-LD・4K(Retina)・マテリアルデザイン・grid/flexbox

【レガシーWebとは】
table、float、position(relative / absolute)による位置決めが特徴

モバイルファースト

モバイルファーストの対象は、Googleのインデックスなのか、スマートフォンデバイスなのか、スマートフォンユーザーなのか

スマートフォンアプリ ビジュアル再現

ZOZOTOWN型スタイル、メルカリ型スタイル、Instagram型スタイル、およびYahooニュース/不動産紹介スタイル

4K / DPR:3 レスポンシブ イメージ

同一サイズの同一画像ファイルをCSSで伸縮させるのが、レスポンシブWebデザイン(レガシーレスポンシブ)
複数サイズの複数画像ファイルをビューポート(もしくはボックスサイズ)のDPRに合わせて最適な画像ファイルを、ブラウザーが選択表示するのがレスポンシブイメージ(モダンレスポンシブ)

モダンWebで
ビジュアルSEO

モダンWeb実現 WP最新テーマ アピールポイント モバイルファースト・最新HTML/CSS3・スマホアプリ・WebP・JSON-LD・4K(Retina)・マテリアルデザイン・grid/flexbox