SVG(Scalable Vector Graphics)
任意の用途に使えるように作られた言語に機能を容易に拡張できるようにしたマークアップ言語の総称
<?xml version="1.0" encoding="utf-8"?>
XMLドキュメントであることを宣言するもの。version"1.0"はXMLのバージョン。encodeing="utf-8"はXMLファイルのエンコーディング。
XMLドキュメントに付けられたタグの解釈はドキュメントを扱うアプリケーションの問題でHTMLドキュメントで定められているタグを別のアプリケーションで別の目的で利用することもできる。
属性値はダブルクォーテーションかアポストロフィーのいずれかで囲む
XML1.0ではxml:space(空白と改行の扱い方を指定するための属性指定可能な値は"default"[空白と改行の取り扱いはそのXMLドキュメントをそうっさするプログラムやプロセッサに任される。通常XMLドキュメントのプロセッサは空白や改行を無視する。]と"preserve"[空白と改行を無視したり削除せずに保存する。])とxml:lang(XMLドキュメントの中の任意の要素の内容や属性値で扱われている言語名と国名を指定する。)
| 種類 | 意味 |
|---|---|
| ほかの要素(element) | ほかのタグ付き要素 |
| キャラクタデータ(CharData) | 文字列データ(テキスト) |
| CDATAセクション(CDSect) | "<![CDATA["文字列"]]>"の形式の文字列 |
| 処理命令(PI) | <?で始まる処理命令 |
| コメント(Comment) | コメント |
ルート要素は一個で二個以上あってはならない。子要素はいくつでも可。
XMLのタグ名が複数の目的に使われる場合にそれぞれを違ったものとして認識できるようにするための定義→名前空間
例)
<name xmlns:foo="http://www.owndomain.jp/directory1/foo">
上記のように宣言した場合fooの名前空間は「http://www.owndomain.jp/directory1/foo」となり、以後fooで修飾される時は定義された名前空間の場所を表す。
→ <element:foo>content</element:foo>
おそらくは宣言時のタグ名の配下において有効とする方法と思う
xmlns属性による名前空間宣言で、接頭辞を省略すると、その要素以下でデフォルトとなり、接頭辞なしのタグ名はデフォルトの名前空間に属するようになる。
トップへ戻る最新はHTML5。以前の拡張子は.htmが使われていた。これはWindows系のファイルシステムの拡張子が最大3文字だったころの名残。現在では拡張子は.htmlにするべきとされる。
HTMLファイルの中にSVGグラフィックスを直接記述することができる。
例)
<img src="sample.svg" />
例)
<object data="sample.svg" type="image/svg+xml" title="objectとしてのSVG" alt="画像">
<p>SVGがサポートされていないときに表示する内容</p>
</object>
例)
<embed src="sample.svg" type="image/svg+xml" />
| キャラクタ | 内容 |
|---|---|
| #x9 | 水平タブ |
| #xA | ラインフィード(改行) |
| #xD | キャリッジリターン(復帰) |
| #x20 | 空白 |
| #x21-#xD7FF | Unicodeキャラクタ |
| #xE000-#xFFFD | Unicodeキャラクタ |
| #x10000-#x10FFFF | Unicodeキャラクタ |
| 文字 | エスケープ | 数値 | 意味 | そのままでよい場合の例 |
|---|---|---|---|---|
| & | & | & | アンパサンドキャラクタ | |
| < | < | < | 小なり不等号 | <タグ> |
| > | > | > | 大なり不等号 | <タグ> |
| ' | ' | ' | アポストロフィー | |
| " | " | " | クォーテーション |
| コード | 意味 |
|---|---|
| #x20 | スペース(いわゆる半角スペース) |
| #x9 | 水平タブ(通常「Tab」キーを押すと入力される文字) |
| #xA | ラインフィード(改行) |
| #xD | キャリッジリターン(復帰) |
インデントのための空白は無視される。属性リストの空白に2個以上の空白を入れた場合も無視される。全角空白は空白に含まれない。
| 色の値 | 使い方 |
|---|---|
| #rrggbb | rgbそれぞれ16進数で指定する。 |
| red,green,blue,black等 | |
| rgb(0-255,0-255,0-255) | |
| rgba(0-255,0-255,0-255,0-1.0) | aは透明度 |
| hsl(0-360,0-255,0-255) | h色相(hue)0-360の範囲、s彩度(saturation)0-255の範囲、l明度(lightness)0-255の範囲 |
| hsla(0-360,0-255,0-255,0-1.0) | a透明度0-1.0の範囲 |
| 単位 | 説明 |
|---|---|
| em | デフォルトフォントのサイズ(テキスト行と同じ高さ) |
| ex | 小文字xの大きさ |
| px | ピクセル |
| pt | ポイント(1/72インチ) |
| pc | パイカ(1/6インチ) |
| cm | センチメートル |
| mm | ミリメートル |
| in | インチ |
viewBox属性:viewBox="min-x min-y width height"で指定する
preserveAspectRatio属性
| 値 | 意味 |
|---|---|
| xMin | 左端にそろえる |
| xMid | 水平方向の中央に揃える |
| xMax | 右端にそろえる |
| yMin | 上端にそろえる |
| yMid | 垂直方向の中央に揃える |
| yMax | 下端にそろえる |
| meet | スペースに収まるように配置する |
| slice | スペースに収まらない部分は切り取る |
| none | スペースに収まるように拡大縮小する |
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" 属性...> </svg>
xmlns:xlink="http://www.w3.org/2000/xlink" ⇒ xlink:hrefを利用する時
titleとdescは省略可能
<linearGradient id="id" x1="(始点)%" y1="(始点)%" x2="(終点)%" y2="(終点)%"> </linearGradient>
<radialGradient id="id" cx="(中心)%" cy="(中心)%" r="(半径)%"> </radialGradient>
<clipPath id="name" clipPathUnits="userSpaceOnUse"> クリッピング図形</clipPath>
idで名前を付けておくとhref等で利用することができる。
| 名前 | 意味 |
|---|---|
| systemLanguage | システムの言語(ja、en、es、ruなど) |
| requiredFeatures | コードを実行するために必要な機能 |
| requireExtentions | コードを実行するために必要なサポートされている拡張子 |
| 名前 | 意味 |
|---|---|
| spreadMethod | グラデーションの広がり方を指定する |
| spreadMethod属性の値 | |
| pad | 最初と最後のストップの色を端まで引き延ばす |
| repeat | 端部に達するまで繰り返す |
| reflecct | 端部に達するまで反転しながら繰り返す |
| 名前 | 意味 |
|---|---|
| offset | 色の変換点をパーセンテージで指定 |
| stop-color | 色を指定 |
| 名前 | 意味 | 属性値の例 |
|---|---|---|
| xlink:href | 読み込むイメージのURL | "image/sample.png" |
| x,y | イメージの左上の座標 | |
| width | イメージの表示幅 | |
| height | イメージの表示高さ | |
| preserveAspectRatio | ||
| clip-path | クリッピング領域を指定 | clip-path="url()" |
| mask | マスク領域を指定 | mask="url()" |
| preserveAspectRatio属性に指定可能な値 | ||
| 値 | 解説 | |
| none | 均等な拡縮を強制しない。必要なら不均等に拡縮される | |
| xMinYMin | 均等な拡縮を強制する。XとYは最小値に揃える | |
| xMidYMin | 均等な拡縮を強制する。Xは中央値、Yは最小値に揃える | |
| xMaxYMin | 均等な拡縮を強制する。Xは最大値、Yは最小値に揃える | |
| xMinYMid | 均等な拡縮を強制する。Xは最小値、Yは中央値に揃える | |
| xMidYMid | 均等な拡縮を強制する。XとYは中央値に揃える(デフォルト) | |
| xMaxYMid | 均等な拡縮を強制する。Xは最大値、Yは中央値に揃える | |
| xMinYMax | 均等な拡縮を強制する。Xは最小値、Yは最大値に揃える | |
| xMidYMax | 均等な拡縮を強制する。Xは中央値、Yは最大値に揃える | |
| xMaxYMax | 均等な拡縮を強制する。XとYは最大値に揃える | |
| meet | 縦横比は維持され、viewBox全体が見える最大の大きさ(既定値) | |
| slilce | 縦横比は維持され、できるだけ小さく拡縮される。結果としてスライスされる | |
| 名前 | 意味 | 属性値の例 |
|---|---|---|
| id | あとで参照するためのID | |
| x,y | 始点の座標 | |
| height | 高さに対する割合 | 0.5、50% |
| width | 幅に対する割合 | 0.2、20% |
| patternUnits | パターンの座標系 | userSpaceOnUse | objectBoundingBox |
| patternUnits | パターンの内容に対する座標系 | userSpaceOnUse | objectBoundingBox |
| patternTransform | パターンの変換 |
transform="translate(x,y)"
| 名前 | 意味 | 機能 |
|---|---|---|
| translate(x,y) | 移動 | 座標を(x,y)だけずらす |
| scale(n) | 拡大・縮小 | 座標をn倍する |
| rotate(r) | 回転 | 座標をrだけ回転させる |
| skewX(r)、skewY(r) | 傾斜 | 座標をrだけ傾斜させる |
| matrix(a,b,c,d,e,f) | 図形を変換する |
<line x1="n1" y1="n2" x2="n3" y2="n4" />
| 名前 | 意味 | 属性値の例 |
|---|---|---|
| x1,y1 | 始点の座標 | x1="10" y1="10" |
| x2,y2 | 終点の座標 | x2="100" y2="10" |
| stroke | 線の色 | blue |
| stroke-width | 線の太さ | 1px |
<polyline points="x1,y1,x2,y2,x3,y3,x4,y4,..." />
<polyline points="x1,y1 x2,y2 x3,y3 x4,y4 ..." />
| 名前 | 意味 | 属性値の例 |
|---|---|---|
| points | 座標ペアのリスト | 80,20,90,50,70,50,80,20 |
| stroke | 線の色 | blue |
| stroke-width | 線の太さ | 1px |
| fill | 閉じた領域の場合の塗り潰し色 | none(塗り潰さない)、gray |
<rect x="n1" y="n2" width="n3" heigth="n4" />
| 名前 | 意味 | 属性値の例または参照項目 |
|---|---|---|
| x,y | 矩形の左上の座標 | |
| height | 矩形の高さ | |
| width | 矩形の幅 | |
| rx,ry | 角丸にするときの角の半径 | |
| stroke | 線の色 | blue |
| stroke-width | 線の太さ | 1px |
| fill | 閉じた領域の場合の塗り潰し色 | none(塗り潰さない)、gray |
<circle cx="n1" xy="n2" r="n3" />
| 名前 | 意味 | 属性値の例 |
|---|---|---|
| cx,cy | 中心の座標 | |
| r | 円の半径 | |
| stroke | 線の色 | blue |
| stroke-width | 線の太さ | 1px |
| fill | 閉じた領域の場合の塗り潰し色 | none(塗り潰さない)、gray |
<ellipse cx="n1" cy="n2" rx="n3" ry="n4" />
| 名前 | 意味 | 属性値の例 |
|---|---|---|
| cx,cy | 中心の座標 | |
| rx | 楕円の水平方向の半径 | |
| ry | 楕円の垂直方向の半径 | |
| stroke | 線の色 | blue |
| stroke-width | 線の太さ | 1px |
| fill | 閉じた領域の場合の塗り潰し色 | none(塗り潰さない)、gray |
<polygon points="x1,y1 x2,y2 x3,y3 x4,y4 ..." />
| 名前 | 意味 | 属性の例 |
|---|---|---|
| points | 頂点座標のリスト | |
| stroke | 線の色 | blue |
| stroke-width | 線の太さ | 1px |
| fill | 閉じた領域の場合の塗り潰し色 | none(塗り潰さない)、gray |
<path>
| 名前 | 意味 | 属性値の例 |
|---|---|---|
| d | パスのデータ | |
| stroke | 線の色 | blue |
| stroke-width | 線の太さ | 1px |
| fill | 閉じた領域の場合の塗り潰し色 | none(塗り潰さない)、gray |
| コマンド | 利用方法 | 意味 |
|---|---|---|
| M | M x y | 絶対座標で指定された位置にペンを移動する |
| m | m x y | 相対座標で指定された位置にペンを移動する |
| L | L x1 y1 x2 y2 x3 y3 ... | 絶対座標で指定された位置まで直線を描く |
| l | l x1 y1 x2 y2 x3 y3 ... | 相対座標で指定された位置まで直線を描く |
| Z | Z | パスの開始点まで直線を描いてパスを閉じる |
| H | H x | 絶対座標で指定された距離まで水平に直線を描く(Y軸の値は変わらない) |
| h | h x | 相対座標で指定された距離まで水平に直線を描く(Y軸の値は変わらない) |
| V | V y | 絶対座標で指定された距離まで垂直に直線を描く(X軸の値は変わらない) |
| v | v y | 相対座標で指定された距離まで垂直に直線を描く(X軸の値は変わらない) |
| A | 下記参照 | 絶対座標で指定された楕円を描く |
| a | 下記参照 | 相対座標で指定された楕円を描く |
A (x半径) (y半径) (回転角) (楕円孤の大きさ) (スイープ) (終点のx座標) (終点のy座標)
a (x半径) (y半径) (回転角) (楕円孤の大きさ) (スイープ) (終点のx座標) (終点のy座標)
| コマンド | 書式 | 意味 |
|---|---|---|
| Q | Q x1 y1 x y | 絶対座標で制御点(x1,y1)を使って現在の点から(x,y)まで二次ベジェ曲線を描く |
| q | q x1 y1 x y | 相対座標で制御点(x1,y1)を使って現在の点から(x,y)まで二次ベジェ曲線を描く |
| T | T x y | 絶対座標で現在の点から(x,y)まで二次ベジェ曲線を描く |
| t | t x y | 相対座標で現在の点から(x,y)まで二次ベジェ曲線を描く |
| C | C x1 y1 x2 y2 x y | 絶対座標で制御点(x1,y1)と(x2,y2)を使って現在の点から(x,y)まで三次ベジェ曲線を描く |
| c | c x1 y1 x2 y2 x y | 相対座標で制御点(x1,y1)と(x2,y2)を使って現在の点から(x,7)まで三次ベジェ曲線を描く |
| S | S x2 y2 x y | 絶対座標で制御点(x2,y2)を使って現在の点から(x,y)まで三次ベジェ曲線を描く |
| s | s x2 y2 x y | 相対座標で制御点(x2,y2)を使って現在の点から(x,y)まで三次ベジェ曲線を描く |
<marker></marker>
| 名前 | 意味 |
|---|---|
| id | ID |
| markerHeight | マーカーの高さ |
| markerWidth | マーカーの幅 |
| refX | マーカー位置をそろえるための基準点のX座標 |
| refY | マーカー位置をそろえるための基準点のY座標 |
| 名前 | 意味 |
|---|---|
| marker | パスの各点に描くマーカーを指定する[url(#id);で指定可能] |
| marker-start | パスの視点に描くマーカーを指定する[url(#id);で指定可能] |
| marker-mid | パスの中央点に描くマーカーを指定する[url(#id);で指定可能] |
| marker-end | パスの終点に描くマーカーを指定する[url(#id);で指定可能] |
ストロークとフィルに関係する属性の利用方法を示す。
| 名前 | 意味 | 属性値の例 |
|---|---|---|
| stroke | 線の色 | blue |
| stroke-width | 線の太さ | 1px |
| stroke-linecap | 端部の形状 | butt,round,square |
| stroke-linecap属性の値 | ||
| 値 | 意味 | |
| butt | 指定した端部座標で終わる(デフォルト) | |
| roud | 端部を丸くする(指定した端部座標から円の半径分だけはみ出す) | |
| square | 端部を丸くしない(指定した端部座標から太さの半分だけはみ出す) | |
| stroke-linejoin | 結合部分の状態 | miter,round,bevel |
| stroke-linejoin属性の値 | ||
| 値 | 意味 | |
| miter | 角がある結合部分 | |
| round | 結合部を丸くする | |
| bevel | 結合部の角を面取りする | |
| stroke-dasharray | 破線と鎖線を指定する | stroke-dasharray="(描く長さ) (描かない長さ) (描く長さ) (描かない長さ)..." |
| stroke-opacity | 線の透明度を指定する | stroke-opacity="0.0-1.0" |
| 名前 | 意味 | 属性値の例 |
|---|---|---|
| fill | 塗り潰し色を指定 | none(defaultはblack) |
| fill-opacity | 塗り潰しの透明度を指定する | fill-opacity="0.0-1.0" |
| fill-rule | 塗り潰しの範囲を指定する | nonzero,evenodd |
| fill-rule属性の値 | ||
| 値 | 意味 | |
| nonzero | すべて塗り潰し | |
| evenodd | 垂直中心まで、水平方向に線が基数本ある場合塗り潰し、偶数の場合塗り潰さない(偶数部分は外部と判断する) | |
<text x="n1" y="n2">グラフィックスとして描く文字列</text>
| 名前 | 意味 | 属性値の例または参照項目 |
|---|---|---|
| x,y | 描画開始点の座標 | |
| text-decoration | テキストの就職 | underline(下線)、overline(上線)、line-through(取消線) |
| word-spacing | 単語間のあき | |
| letter-spacing | 文字間のあき | |
| stroke | 線の色 | blue |
| stroke-width | 線の太さ | 1px |
| visibility | 可視性 | |
| text-anchor | 位置揃え | |
| textLength | 水平方向の長さを指定する | |
| transform | テキストを回転させる | rotate(回転角度,中心X座標,中心Y座標) |
| writing-mode | テキストの方向を指定(縦書き横書き) | |
| glyph-orientation-vertical | 縦書き時に指定する | SVG2では使われない |
| text-orientation | 縦書き時に指定する | SVG2でglyph-orientation-verticalの代わりに利用される。[値:upright] |
| styleとして指定可能なフォント | ||
| font-size | フォントのサイズ | 12px,10.5pt |
| font-family | フォントの種類 | serif、monospace、Century |
| font-weight | フォントの太さ | bold、nomal |
| font-style | フォントの種類 | italic、nomal |
| text-anhor属性の値 | ||
| 値 | 意味 | 説明 |
| start | 描き始め位置から描く | 英文字や日本語文字では指定した座標に対して左揃え |
| middle | 文字列を中央に描く | 中央揃え |
| end | 描き終りに揃える | 英文字や日本語文字では指定した座標に対して右揃え |
| writing-mode属性の値 | ||
| 値 | 意味 | |
| lr-tb、lr | 左から右に描かれる | |
| rl-tb、rl | 右から左に描かれる | |
| tb-rl、tb | 上から下に描かれる | |
| horizontal-tb | 横書き、上から下へ | |
| vertical-rl | 縦書き、右から左 | |
| vertical-lr | 縦書き、左から右(日本語縦書き型) | |
| glyph-orientation-vertical属性の値 | ||
| 値 | 意味 | |
| auto | 自動的に決められる | |
| mixed | 自動的に決められる | |
| 0deg、0 | 垂直に描かれる | |
| 90deg、90 | 横書きで描かれる | |
<tspan></tspan>
タグで囲んだ範囲のみ指定の属性を付与できる
パスに沿ったテキストを描く。xlink:hrefでパスを参照しそれに沿って描く。<textPath>は<text>の子要素として定義する必要がある。
<filter id="name"> 子要素</filter>
適用時にはfilter="url()"を描画要素に付ける
<feGaussianBlur in="SourceAlpha" stdDeviation="暈し具合(1でも十分暈ける)" />
<feColorMatrix type="hueRotate" values="フィルターのかかり具合"
<feComposite operator="" result="" >
<feMerge></feMerge>
<feMergeNode in="" />
| 値 | 解説(AとBは合成する二つの入力) |
|---|---|
| over | BにAを重ねた結果を生成する(<feMergeNode>と同じ) |
| in | Bの不透明部分と重なり合うAを生成する |
| out | Bの不透明な領域の外にあるAを生成する |
| atop | Bの内側にあるAの部分とAの外側にあるBの部分を重ねた結果を生成する |
| arithmetic | 4個の係数を指定しk1*A*B+k2*A+k3*B+k4の値を生成する |
SMIL(Synchronized Multimedia Integration Language)のこと
すべての要素は終了タグを必要とする。
<要素 属性1="n" 属性2="n" ...>
<animate id="name" attributeName="name" attributeType="name" from="n" to="n" begin="ns" dur="ns" fill="name" repeatCount="n" />
</要素>
| 名前 | 意味 | 属性値の例または参照項目 |
|---|---|---|
| id | 識別名 | |
| attributeName | 変化させる属性の名前 | |
| attributeType | 変化させる属性のタイプ | XML、CSS |
| from | 変化させる属性の初期値 | |
| to | 変化させる属性の最終値 | |
| by | 変化させる属性の増分(to-fromの値) | |
| begin | アニメーションを開始する時間 | ID.endでIDのアニメーションの終了後に始めることができる |
| dur | アニメーションの継続時間 | 5s、500ms |
| repeatCount | アニメーションの繰り返し回数 | indefinite:無制限 |
| fill | 終了後の動作(freeze:そのまま、remove:元に戻す) |
| 名前 | 意味 |
|---|---|
| mouseover | マウスポインタが外からオブジェクトの上に移動した |
| mousemove | マウスポインタがオブジェクトの上で移動した |
| mouseout | マウスポインタがオブジェクトの上から外に移動した |
| click | マウスがクリックされた |
| actiovate | オブジェクトがアクティブになった |
| focusIn | オブジェクトがフォーカスを受け取った |
| focusOut | オブジェクトがフォーカスを失った |
数値ではなくある状態から別の状態に変化させる。
<要素 属性1="n" 属性2="n" ...>
<set id="name" attributeName="name" attributeType="name" from="value" to="value" begin="ns" dur="ns" fill="name" />
</要素>
<要素 属性1="n" 属性2="n" ...>
<animateTransform attributeName="transform" attributeType="name" type="name" from="n" to="n" begin="ns" dur="ns" repeatCount="n" additive="sum" fill="name" />
</要素>
| 名前 | 意味 | 属性値の例または参照項目 |
|---|---|---|
| id | 識別名 | |
| attributeName | 変化させる属性の名前 | |
| attributeType | 変化させる属性のタイプ | XML、CSS |
| type | 変換の種類 | rotate、scale、translate、skewX/Y |
| from | 変化させる属性の初期値 | |
| to | 変化させる属性の最終値 | |
| begin | アニメーションを開始する時間 | |
| dur | アニメーションの継続時間 | |
| repeatCount | アニメーションの繰り返し回数 |
<要素 ...>
<animateMotion path="path" dur="ns" repeatCount="n" fill="color" />
</要素>
| 名前 | 意味 | 属性値の例 |
|---|---|---|
| path | ブラフィックスを移動させるパス | |
| begin | アニメーションを開始する時間 | |
| dur | アニメーションの継続時間 | |
| repeatCount | アニメーションの繰り返し回数 | |
| fill | 塗り潰し |
| 名前 | 意味 | |
|---|---|---|
| animation-name | アニメーションを識別するための名前(@keyframesの名前) | |
| animation-timing-function | 中間値の計算の方法(ease、linear、ease-in等) | |
| animation-direction | 変化させる方法(反転させる場合はalternate、デフォルトはnormal) | |
| animation-play-state | 実行状態(runningは実行中、pausedは停止中 | |
| animation-iteration-count | アニメーションの繰り返し回数(infiniteを指定すると無限) | |
| animation-duration | アニメーションが継続する時間 | |
| animation-delay | アニメーションを開始するまでの時間 |
| 値 | 意味 |
|---|---|
| ease | 開始と完了を滑らかにする(デフォルト) |
| linear | 一定に変化させる |
| ease-in | ゆっくり始める |
| ease-out | ゆっくり終わる |
| ease-in-out | ゆっくり初めてゆっくり終わる |
| cubic-bezier() | 三次ベジェ曲線を指定する。 |
<style type="text/css">
要素名{
animation-name:name; //アニメーションの名前
animation-duration:ns; //アニメーション時間
animation-timing-function:ease; //アニメーションのタイミング
animation-iteration-count:n; //アニメーションの繰り返し回数
animation-direction:alternate; //アニメーションを変化させる方法
animation-play-state:running; //アニメーションの実行状態
}
@keyframes name{
0%{
//0%の時間での変化状態
}
100%{
//100%の時間での変化状態
}
}