jpgやpng、gifといったラスター(bitmap)画像を拡大したり、保存し直したりすると画質がどんどん劣化します。それに対して、テキストベースのベクター画像であるSVGは、拡大縮小、再保存しても劣化することはありません。
これはhtml上であっても同様です。色数が多く、複雑な画像はともかく、アイコンや記号、ダイアグラムなどの単純な画像であれば、ひとつ用意しておくだけでいろいろなサイズに流用できて便利です。そこで外部のSVGファイルをhtmlで直接表示できるタグを備忘録としてまとめてみました。
外部SVGはIllustratorで作成したものをそのままを使っています。SVG上の表示サイズ縦横94pxです。また、各サンプルのタグの後ろに改行やマージンなどは付加していませんので、大きめの空間が空いてしまっている場合は、そのタグの振る舞いです。
<object data="012b.svg" type="image/svg+xml"></object>
<input type="image" src="012b.svg"/>
<iframe src="012b.svg" style="border:0;"></iframe>
<embed src="012b.svg"/>
<div class="svg-bg"> <div>
.svg-bg {
width:92px;
height:92px;
background:url(012b.svg) no-repeat;
display:inline-block;
background-size:100% 100%;
}
<img src="012b.svg"/>
<img src="012g.svg" height="60" width="60"/> /*最初の画像*/
<div class="icon"><img src="012.svg" height="30" width="30"/> <span>アイコンボタン</span> </div>
.icon {
width:200px;
border:1px solid #bbb;
background:url(img/btbg.png) repeat-x;
padding:7px 12px;
text-align:left;
display: table-cell;
vertical-align: middle;
line-height: 0;
border-radius: 0.5em;
}
.icon span {
display:inline-block;
font-size:16px;
vertical-align: top;
margin-left:15px;
margin-top:15px;
}