CSS marker プロパティ
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2017年4月以降、すべてのブラウザーで利用可能です。
marker は CSS のプロパティで、要素のパスの最初、中間、最後の頂点、つまりすべての頂点に描画されるマーカーを指定します。マーカーは、SVG の <marker> 要素を使用して定義されている必要があり、<url> の値でのみ参照できます。この CSS プロパティの値は、SVG 内の marker-start, marker, marker-end の各属性の値をすべて上書きします。
マーカーに対応する多くの図形では、最初の頂点と最後の頂点が同じ位置になります。例えば、<rect> の左上角などがそうです。このような図形において、最初のマーカーと最後のマーカーの両方が定義されている場合、その点に 2 つのマーカーが描画されますが、それらは同じ方向を向いているとは限りません。
中間の頂点については、それぞれのマーカーが指す方向は、直前のパス区間の終点の方向と、次のパス区間の始点の方向の中間として定義されます。これは、2 つのパス方向によって定義されるベクトルの外積と考えることができます。
メモ:
marker プロパティは、SVG マーカーを使用することができる要素に対してのみ効果があります。対象となる要素の一覧については、marker-start を参照してください。
構文
css
marker: none;
marker: url("markers.svg#arrow");
/* グローバル値 */
marker: inherit;
marker: initial;
marker: revert;
marker: revert-layer;
marker: unset;
値
none-
要素のパスのすべての頂点にはマーカーが描画されないことを意味します。
<marker-ref>-
<url>で、SVG の<marker>要素で定義されたマーカーを参照します。このマーカーは、要素のパスのすべての頂点に描画されます。URL 参照が不正な場合、パスの頂点にはマーカーが描画されません。
公式定義
| 初期値 | 一括指定の次の各プロパティとして
|
|---|---|
| 適用対象 | <circle>, <ellipse>, <line>, <path>, <polygon>, <polyline>, and <rect> elements in an svg |
| 継承 | あり |
| 計算値 | 指定通り |
| アニメーションの種類 | 離散値 |
形式文法
marker =
none |
<marker-ref>
<marker-ref> =
<url>
例
html
<svg viewBox="0 0 240 120" xmlns="http://www.w3.org/2000/svg">
<defs>
<marker
id="triangle"
viewBox="0 0 10 10"
markerWidth="10"
markerHeight="10"
refX="1"
refY="5"
markerUnits="strokeWidth"
orient="auto">
<path d="M 0 0 L 10 5 L 0 10 z" fill="red" />
</marker>
</defs>
<polyline
id="test"
fill="none"
stroke="black"
points="20,100 40,60 70,80 100,20 130,10 150,10 170,20 170,100 120,100" />
</svg>
css
polyline#test {
marker: url("#triangle");
}
仕様書
| 仕様書 |
|---|
| Scalable Vector Graphics (SVG) 2> # MarkerShorthand> |
ブラウザーの互換性
関連情報
marker-startmarker-end- SVG
<marker>要素