このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

CSS marker プロパティ

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2017年4月以降、すべてのブラウザーで利用可能です。

markerCSS のプロパティで、要素のパスの最初、中間、最後の頂点、つまりすべての頂点に描画されるマーカーを指定します。マーカーは、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>
この構文は CSS Specification による最新の標準を反映しています。すべてのブラウザーがすべての部分を実装しているわけではありません。サポート情報についてはブラウザーの互換性を参照してください。

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

ブラウザーの互換性

関連情報