stroke-width

Baseline 已广泛支持

该特性已非常成熟,可在多种设备和浏览器版本上使用。自 2017 年 4 月以来,它已在各大浏览器上可用。

stroke-width CSS 属性定义了应用于 SVG 形状的描边宽度。如果存在,它会覆盖元素的 stroke-width 属性。

此属性适用于任何 SVG 形状或文本内容元素(请参阅 stroke-width 以获取完整列表),但作为继承属性,它可以应用于诸如 <g> 等元素,并且仍然对后代元素的描边产生预期效果。如果该值评估为零,则不绘制描边。

语法

css
/* Length and percentage values */
stroke-width: 0%;
stroke-width: 1.414px;

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

<length>

像素单位的处理方式与 SVG 单位相同(参见上文的 <number>),而基于字体的长度(例如 em)则根据元素的文本大小的 SVG 值进行计算;其他长度单位的效果可能取决于浏览器。

<percentage>

百分比指的是当前 SVG 视口归一化对角线,计算方法为<width>2+<height>22.

<number> 非标准

SVG 单位的数值,其大小由当前单位空间定义。

正式定义

初始值1px
应用于svg 中的 <circle><ellipse><line><path><polygon><polyline><rect> 元素
继承性
百分比指的是当前 SVG 视口应用的 viewBox 的归一化对角线测量值,如果未指定 viewBox,则指视口本身的测量值。
计算值一个绝对的 <length><percentage>,数字首先转换为绝对长度
动画类型按计算值类型

正式语法

stroke-width = 
[ <length-percentage> | <number> ]#

<length-percentage> =
<length> |
<percentage>

示例

各种描边宽度

此示例演示了 stroke-width 属性的各种值语法。

HTML

首先,我们设置了五条多段路径,所有路径都使用宽度为一的黑色描边,并且没有填充。每条路径都创建了一系列山形符号,从左(浅角)到右(极角)。

html
<svg viewBox="0 0 39 30" xmlns="http://www.w3.org/2000/svg">
  <g stroke="black" stroke-width="1" fill="none">
    <path
      d="M1,5 l7   ,-3 l7   ,3
         m2,0 l3.5 ,-3 l3.5 ,3
         m2,0 l2   ,-3 l2   ,3
         m2,0 l0.75,-3 l0.75,3
         m2,0 l0.5 ,-3 l0.5 ,3" />
    <path
      d="M1,8 l7,-3 l7,3 m2,0 l3.5,-3 l3.5,3 m2,0 l2,-3 l2,3 m2,0 l0.75,-3 l0.75,3 m2,0 l0.5,-3 l0.5,3" />
    <path
      d="M1,14 l7,-3 l7,3 m2,0 l3.5,-3 l3.5,3 m2,0 l2,-3 l2,3 m2,0 l0.75,-3 l0.75,3 m2,0 l0.5,-3 l0.5,3" />
    <path
      d="M1,18 l7,-3 l7,3 m2,0 l3.5,-3 l3.5,3 m2,0 l2,-3 l2,3 m2,0 l0.75,-3 l0.75,3 m2,0 l0.5,-3 l0.5,3" />
    <path
      d="M1,26 l7,-3 l7,3 m2,0 l3.5,-3 l3.5,3 m2,0 l2,-3 l2,3 m2,0 l0.75,-3 l0.75,3 m2,0 l0.5,-3 l0.5,3" />
  </g>
</svg>

CSS

对于前四条路径,我们将描边宽度值成对应用,以显示裸数字值和像素值在功能上是等效的。对于前两条路径,值为 .25.25px。对于后两条路径,值为 11px

对于第五条也是最后一条路径,应用了 5% 的值,从而将描边宽度设置为 SVG 视口对角线长度的百分之五。

css
path:nth-child(1) {
  stroke-width: 0.25;
}
path:nth-child(2) {
  stroke-width: 0.25px;
}
path:nth-child(3) {
  stroke-width: 1;
}
path:nth-child(4) {
  stroke-width: 1px;
}
path:nth-child(5) {
  stroke-width: 5%;
}

结果

规范

规范
CSS 填充与描边模块 Level 3
# stroke-width

浏览器兼容性

另见