WEBサイトにSVGを追加するいくつかの方法(通常版・WP版)


SVGの知識はWEBでも大型アップデートとゆうかかなり大規模に要素が追加されています。複雑なSVGを作るには、0からテキストベースよりもIllustratorを利用しパスを作成した方がわかりやすですが、簡単なものや数値によってデザインの変わるグラフなどであればSVGを理解したほうが早いと思います。
現実的な使い方を考えてます。

まとめて設定したSVGオブジェクトを任意の場所に呼び出し

効率的にSVGを管理するには、defタグを利用します。
defタグは実際に描画は無く図形の定義をまとめておくためのタグです。
def内で利用する複数のSVGをまとめて定義し、表示箇所にはUSEを利用してクローンコピーで呼び出すのがい良いと思います。
JSを後読みするように、defも/body付近に追加することでSEO対策になります。

RAW HTML

svg要素でuseでxlinkの内部リンクで、defsで定義したsvg[id=circle]を呼び出します。このとき後方のSVGはwidth,heightは0にします。

<svg class="icon" width="40" height="40"><use xlink:href="#circle"></use></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="0" height="0">
<defs>
<circle id="circle" cx="20" cy="20" r="20"/>
</defs>
</svg>
ソースコード装飾ならGoogle code prettify

WPでSVGファイルを呼び出す時

複雑なSVGはコード量が多く、直接ソースに記載するとヒューマンエラーの元です。そこでaiなどで書き出した.svgファイルを外部参照でhtmlに記載したいと思います。
phpだとfile_get_contentsやcurlでファイルを展開することができますが、wpならば専用関数が用意されています。
wp_remote_getとwp_remote_retrieve_bodyを利用して、SVGをHTMLに展開してみます。

$svg = wp_remote_retrieve_body(wp_remote_get('/path/sample.svg'));
ソースコード装飾ならGoogle code prettify

これでSVGを外部ファイル化してソースを簡素に保てます。

SVGコードサンプル

コピペし易いようにまとめて見ました。タレコミ募集!掲載したいコードがあったらコメントください。

参考

「10分でわかるSVG 応用編」サンプル
http://sample.atmarkit.jp/fux/1207/02/sample.xhtml

SVGで図形やアニメを描画してみよう
http://www.atmarkit.co.jp/ait/articles/1207/02/news142_2.html

しば に更新 2300文字 1,239view
※この記事は2年前の記事です。内容が古い可能性があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください