d

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

dCSS のプロパティで、 SVG の <path> 要素が描画するパスを定義します。存在すれば、要素の d 属性よりも優先されます。

メモ: d プロパティは、 <svg> 内にある <path> 要素にのみ適用されます。その他の SVG 要素や HTML 要素、擬似要素には適用されません。

構文

css
/* 既定 */ 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; 

値は path() 関数に単一の <string> 引数を付けたものか、キーワード none のどちらかです。

none

パスは描画されません。

path(<string>)

path() 関数に引用符付きのデータ文字列の引数が付きます。データ文字列は SVG パスを定義します。 SVG パスのデータ文字列には、パスコマンドが入り、暗黙でピクセル単位を使用します。からのパスは無効とみなされます。

公式定義

初期値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 角の正方形を生成します。

html
<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 画像を描画します。

css
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> を作成します。

html
<svg> <path /> </svg> 

CSS

d 属性を使って、斜線を引いたハートを定義します。 CSS を使用して、そのパスの fillstrokestroke-width を定義し、 2 秒間の transition を追加します。 :hover スタイルを追加し、少し異なる path() 関数を使用します。パスには、既定の状態と同じ数のデータポイントがあり、パスをアニメーション可能にします。

css
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

ブラウザーの互換性

関連情報