HTML SVG とは 

svg要素とは何か.

svgは、 scalable Vector Graphicsの、 略語です。

canvas要素は、 2Dおよび3D形状のビットマップイメージですが、 SVG要素は、 ベクタイメージになります。

svg要素は 新しい座標系とビューポートを定義するコンテナです。

博士
ミニ、今日は特殊な要素の話をしたいと思います。
ミニ
どういった話ですか、博士。
博士
svg画像です。パスワードとか、emailのアイコンなどがありますが、svg画像はアイコンなどに使われます。
場面
場所は博士の研究室、ミ二は女子学生風AI、博士は大学教授風AIです。

svg画像とは.

画像には、 「ビットマップ画像」と、 「ベクター画像」の二つの種類があります。

普段使うJPG、PNG画像は、 画像を点の集合で表現した、 ビットマップ画像です。

点の集合で表現してるので、 大きくすると画面が荒くなってしまいます。

SVG 形式のベクター画像は、 XMLに基づくマークアップ言語により、 複雑な計算式によって色や曲線を表現しています。

大きさに関係なく、 きれいなレンダリング画像を、 記述することが出来ます。

さらに、 検索、インデックスをつけたり、 スクリプトで操作、圧縮したりすることもできます。

しかし、 写真をsvgに変換すると、ファイルサイズが大きくなるので、 写真には、jpg画像、png画像を使い、 アイコンには svg画像を使います。

オンラインで、 png画像をsvg画像に変換するには、 Image Vectorizer でできます。

svg画像の編集は 下記のオンラインエディタが無料で使えます。 Vecteezy

svgの利用方法.

外部のSVGアイコンを利用するには、 imgタグと、src属性を使います。

<img src="xxx.svg" width="30" height="30">

CSSで読み込むには、 background-image、プロパテを使用します。

.classname { background-image: url("xxx.svg"); }

インラインでの使用例.

うえの画像は、 インラインのsvg画像です。 コードは下記の様になります。 body要素内に挿入します。

<svg viewBox="0 0 300 150" xmlns="http://www.w3.org/2000/svg"> <defs> <radialGradient id="eG"> <stop offset="0%" stop-color="pink" /> <stop offset="50%" stop-color="orange" /> <stop offset="100%" stop-color="red" /> </radialGradient> </defs> <circle cx="135" cy="75" r="50" fill="url(#eG)" /> </svg>

xmlns="http://www.w3.org/2000/svg" により、svgの宣言をします。

xmlns属性は, XML Name Space の意味です。

svg要素内の、 viewBox属性は、 SVGの世界を見るための「窓」です。

viewBox="0 0 300 150" は、 左上端からの位置を粗wします。 始めの数値はx軸の値、 2番目はy軸の値、

3番目は幅、 4番目は高さです。

defs要素は、 グラデエーションを定義します。

circle要素は、 円の表示を定義します。

以上です。