d

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

d CSS 属性定义了由 SVG <path> 元素绘制的路径。如果存在,它会覆盖元素的 d 属性。

注意:d 属性仅适用于嵌套在 <svg> 中的 <path> 元素。它不适用于其他 SVG 元素,也不适用于 HTML 元素或伪元素。

语法

css
/* Default */
d: none;

/* Basic usage */
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");

/* Global values */
d: inherit;
d: initial;
d: revert;
d: revert-layer;
d: unset;

该值可以是带有单个 <string> 参数的 path() 函数,也可以是关键字 none

none

不绘制路径。

path(<string>)

带有带引号的 数据字符串 参数的 path() 函数。数据字符串定义了 SVG 路径。SVG 路径数据字符串包含隐式使用像素单位的路径命令。空路径被视为无效。

正式定义

初始值none
应用于<svg> 中的 <path> 元素
继承性
计算值同指定值
动画类型是,如 <basic-shape> 所指定,否则否

正式语法

d = 
none |
<string>
此语法反映了 CSS 规范 中的最新标准。并非所有浏览器都可能已实现每个部分。有关支持信息,请参阅浏览器兼容性

示例

指定路径数据

此示例演示了 d 的基本用例,以及 CSS d 属性如何优先于 d 属性。

HTML

我们在 SVG 中包含两个相同的 <path> 元素;它们的 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 属性的值。浏览器默认将 SVG 图像渲染为 300px 宽和 150px 高。

css
svg {
  border: 1px solid;
}

path {
  fill: #ff333388;
  stroke: black;
}

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"
  );
}

结果

第二个 <path> 是一个心形,如 CSS d 属性的 path() 函数值中所定义。未设置样式的 <path> 的路径仍然是一个正方形,如其 SVG d 属性值中所定义。

动画数据路径

此示例演示了 d 属性值的动画。

HTML

我们创建一个包含单个 <path> 元素的 <svg>

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

CSS

我们使用 d 属性定义一个带有一条线的爱心。我们使用 CSS 定义该路径的 fillstrokestroke-width,并添加一个两秒的 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 上。

规范

规范
Scalable Vector Graphics (SVG) 2
# D 属性

浏览器兼容性

另见