vector-effect
vector-effect 属性指定在绘制对象时使用的矢量效果。矢量效果在任何其他合成操作(例如过滤器、遮罩和剪辑)之前应用。
注意: 作为表示属性,vector-effect 可以用作 CSS 属性。
元素
你可以将此属性与以下 SVG 元素一起使用
使用说明
| 值 | none|non-scaling-stroke|non-scaling-size|non-rotation|fixed-position | 
|---|---|
| 默认值 | none | 
| 可动画 | 离散 | 
- none
- 
    此值指定不应用任何矢量效果,即使用默认渲染行为,即首先使用指定油漆填充形状的几何形状,然后使用指定油漆描边轮廓。 
- non-scaling-stroke
- 
    此值修改描边对象的方式。通常,描边涉及在当前用户坐标系中计算形状路径的描边轮廓,并使用描边油漆(颜色或渐变)填充该轮廓。此值的最终视觉效果是描边宽度不依赖于元素的变换(包括非均匀缩放和剪切变换)和缩放级别。 
- non-scaling-size
- 
    此值指定元素及其后代使用的特殊用户坐标系。即使宿主坐标空间发生任何变换变化,该用户坐标系的比例也不会改变。但是,它没有指定旋转和倾斜的抑制。此外,它没有指定用户坐标系的原点。由于此值抑制用户坐标系的缩放,它也具有 non-scaling-stroke的特征。
- non-rotation
- 
    此值指定元素及其后代使用的特殊用户坐标系。即使宿主坐标空间发生任何变换变化,该用户坐标系的旋转和倾斜也会被抑制。但是,它没有指定缩放的抑制。此外,它没有指定用户坐标系的原点。 
- fixed-position
- 
    此值指定元素及其后代使用的特殊用户坐标系。即使宿主坐标空间发生任何变换变化,用户坐标系的位置也会固定。但是,它没有指定旋转、倾斜和缩放的抑制。当此矢量效果和 transform属性同时定义时,该属性将被消耗以用于此效果。
示例
将 vector-effect 设置为 non-scaling-stroke
html
<svg viewBox="0 0 500 240">
  <!-- normal -->
  <path
    d="M10,20 L40,100 L39,200 z"
    stroke="black"
    stroke-width="2px"
    fill="none"></path>
  <!-- scaled -->
  <path
    transform="translate(100,0) scale(4,1)"
    d="M10,20 L40,100 L39,200 z"
    stroke="black"
    stroke-width="2px"
    fill="none"></path>
  <!-- fixed-->
  <path
    vector-effect="non-scaling-stroke"
    transform="translate(300, 0) scale(4, 1)"
    d="M10,20 L40,100 L39,200 z"
    stroke="black"
    stroke-width="2px"
    fill="none"></path>
</svg>
结果
规范
| 规范 | 
|---|
| 可缩放矢量图形 (SVG) 2 # VectorEffects | 
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
- CSS vector-effect属性