<mask>

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Phần tử <mask> của SVG định nghĩa một mặt nạ để ghép đối tượng hiện tại vào nền. Một mask được dùng/tham chiếu bằng thuộc tính mask và thuộc tính CSS mask-image.

Ngữ cảnh sử dụng

CategoriesContainer element
Permitted contentAny number of the following elements, in any order:
Animation elements
Descriptive elements
Shape elements
Structural elements
Gradient elements
<a>, <clipPath>, <filter>, <foreignObject>, <image>, <marker>, <mask>, <pattern>, <script>, <style>, <switch>, <text>, <view>

Thuộc tính

height

Thuộc tính này định nghĩa chiều cao của vùng masking. Kiểu giá trị: <length>; Giá trị mặc định: 120%; Có thể hoạt ảnh:

mask-type

Thuộc tính này định nghĩa chế độ mask cho nội dung của <mask>. Kiểu giá trị: alpha | luminance; Giá trị mặc định: luminance; Có thể hoạt ảnh:

maskContentUnits

Thuộc tính này định nghĩa hệ tọa độ cho nội dung của <mask>. Kiểu giá trị: userSpaceOnUse | objectBoundingBox; Giá trị mặc định: userSpaceOnUse; Có thể hoạt ảnh:

maskUnits

Thuộc tính này định nghĩa hệ tọa độ cho các thuộc tính x, y, widthheight trên <mask>. Kiểu giá trị: userSpaceOnUse | objectBoundingBox; Giá trị mặc định: objectBoundingBox; Có thể hoạt ảnh:

x

Thuộc tính này định nghĩa tọa độ x của góc trên bên trái của vùng masking. Kiểu giá trị: <coordinate>; Giá trị mặc định: -10%; Có thể hoạt ảnh:

y

Thuộc tính này định nghĩa tọa độ y của góc trên bên trái của vùng masking. Kiểu giá trị: <coordinate>; Giá trị mặc định: -10%; Có thể hoạt ảnh:

width

Thuộc tính này định nghĩa chiều rộng của vùng masking. Kiểu giá trị: <length>; Giá trị mặc định: 120%; Có thể hoạt ảnh:

Giao diện DOM

Phần tử này triển khai giao diện SVGMaskElement.

Ví dụ

html
<svg viewBox="-10 -10 120 120">
  <rect x="-10" y="-10" width="120" height="120" fill="blue" />
  <mask id="myMask" mask-type="luminance">
    <!-- Mọi thứ nằm dưới một pixel trắng sẽ hiển thị -->
    <rect x="0" y="0" width="100" height="100" fill="white" />

    <!-- Mọi thứ nằm dưới một pixel đen sẽ vô hình -->
    <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" />

  <!-- với mask này được áp dụng, chúng ta "đục" một lỗ hình trái tim vào hình tròn -->
  <circle cx="50" cy="50" r="50" fill="purple" mask="url(#myMask)" />
</svg>

Đặc tả

Specification
CSS Masking Module Level 1
# MaskElement

Tương thích trình duyệt

Xem thêm