d
構文
/* 既定 */
d: none;
/* 基本的な使用 */
d: path("m 5,5 h 35 L 20,30 z");
d: path("M 0,25 l 50,150 l 200,50 z");
d: path("M 10,5 l 90,0 -80,80 0,-60 80,80 -90,0 z");
/* グローバル値 */
d: inherit;
d: initial;
d: revert;
d: revert-layer;
d: unset;
値
公式定義
初期値 | none |
---|---|
適用対象 | <path> element in <svg> |
継承 | なし |
計算値 | 指定通り |
アニメーションの種類 | <basic-shape> で指定された場合はあり、それ以外の場合はなし |
形式文法
例
パスデータの指定
この例は d
の基本的な用途を示しており、CSS の d
プロパティが d
属性よりもどのように優先されるかを示しています。
HTML
2 つの等しい <path>
要素が SVG にあります。それぞれの d
属性の値は "m 5,5 h 90 v 90 h -90 v -90 z"
であり、 90px
角の正方形を生成します。
<svg>
<path d="m 5,5 h 90 v 90 h -90 v -90 z" />
<path d="m 5,5 h 90 v 90 h -90 v -90 z" />
</svg>
CSS
CSS ではそれぞれのパスに、黒い stroke
と半透明の赤の fill
を設定します。それから d
プロパティを使用して、後者のパスのみ SVG の d
属性を上書きします。ブラウザーは既定で 300px
の幅、 150px
の高さの SVG 画像を描画します。
svg {
border: 1px solid;
}
path {
fill: #f338;
stroke: #000;
}
path:last-of-type {
d: path(
"M10,30 A20,20 0,0,1 50,30 A20,20 0,0,1 90,30 Q90,60 50,90 Q10,60 10,30 z"
);
}
結果
2 つ目の <path>
は、 CSS の d
プロパティの path()
関数値で定義されたとおり、ハートになります。スタイル設定されていない方の <path>
のパスは、 SVG の d
属性値で定義されている通り正方形です。
データパスのアニメーション
この例では、 d
属性値のアニメーションをデモします。
HTML
単一の <path>
要素の入った <svg>
を作成します。
<svg>
<path />
</svg>
CSS
d
属性を使って、斜線を引いたハートを定義します。 CSS を使用して、そのパスの fill
、stroke
、stroke-width
を定義し、 2 秒間の transition
を追加します。 :hover
スタイルを追加し、少し異なる path()
関数を使用します。パスには、既定の状態と同じ数のデータポイントがあり、パスをアニメーション可能にします。
svg {
border: 1px solid;
}
path {
d: path(
"M10,30 A20,20 0,0,1 50,30 A20,20 0,0,1 90,30 Q90,60 50,90 Q10,60 10,30 z M90,5 L5,90"
);
transition: all 2s;
fill: none;
stroke: red;
stroke-width: 3px;
}
svg:hover path {
d: path(
"M10,30 A20,20 0,0,1 50,30 A20,20 0,0,1 90,30 Q90,60 50,90 Q10,60 10,30 z M5,5 L90,90"
);
stroke: black;
}
結果
アニメーションを見るには、 SVG 上にポインターを移動してください。
仕様書
Specification |
---|
Scalable Vector Graphics (SVG) 2 # TheDProperty |