<mask>

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

<mask> SVG 元素用于定义用于将当前对象与背景合成的蒙版。蒙版通过 mask 属性和 CSS mask-image 属性使用/引用。

使用语境

分类容器元素
允许内容可包含任意数量、任意顺序的下列元素
动画元素
描述性元素
形状元素
结构元素
渐变元素
<a><clipPath><filter><foreignObject><image><marker><mask><pattern><script><style><switch><text><view>

属性

height

此属性定义蒙版区域的高度。值类型<length>默认值120%可动画

mask-type

此属性定义 <mask> 内容的蒙版模式。值类型alpha | luminance默认值luminance可动画

遮罩内容单位

此属性定义 <mask> 内容的坐标系。值类型userSpaceOnUse | objectBoundingBox默认值userSpaceOnUse可动画

遮罩单位

此属性定义 <mask> 元素上 xywidthheight 属性的坐标系。值类型userSpaceOnUse | objectBoundingBox默认值objectBoundingBox可动画

x

此属性定义蒙版区域左上角的 x 轴坐标。值类型<coordinate>默认值-10%可动画

y

此属性定义蒙版区域左上角的 y 轴坐标。值类型<coordinate>默认值-10%可动画

width

此属性定义蒙版区域的宽度。值类型<length>默认值120%可动画

DOM 接口

此元素实现了 SVGMaskElement 接口。

示例

html
<svg viewBox="-10 -10 120 120">
  <rect x="-10" y="-10" width="120" height="120" fill="blue" />
  <mask id="myMask" mask-type="luminance">
    <!-- Everything under a white pixel will be visible -->
    <rect x="0" y="0" width="100" height="100" fill="white" />

    <!-- Everything under a black pixel will be invisible -->
    <path
      d="M10,35 A20,20,0,0,1,50,35 A20,20,0,0,1,90,35 Q90,65,50,95 Q10,65,10,35 Z"
      fill="black" />
  </mask>

  <polygon points="-10,110 110,110 110,-10" fill="orange" />

  <!-- with this mask applied, we "punch" a heart shape hole into the circle -->
  <circle cx="50" cy="50" r="50" fill="purple" mask="url(#myMask)" />
</svg>

规范

规范
CSS 蒙版模块 Level 1
# MaskElement

浏览器兼容性

另见