Properti mask-composite

Properti mask-composite memungkinkan untuk mengkombinasikan beberapa mask yang diterapkan pada satu elemen. Properti ini menentukan bagaimana berbagai mask akan berinteraksi satu sama lain saat ditumpangkan.

Sintaksis

cssselector {
  mask-composite: <compositing-operator>#;
}

Nilai

Nilai Deskripsi
add Hasilnya adalah gabungan dari semua mask (default).
subtract Mask kedua dikurangi dari mask pertama.
intersect Hanya area perpotongan mask yang ditampilkan.
exclude Area yang bukan merupakan area umum untuk mask ditampilkan.

Contoh . Mode add

Penggabungan dua mask (hati dan panah):

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    200px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: add;
}

Результат:

Contoh . Mode subtract

Pengurangan panah dari hati:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    170px 80px;
  mask-size: 
    250px,
    120px;
  mask-repeat: no-repeat;
  mask-composite: subtract;
}

Результат:

Contoh . Mode intersect

Menampilkan hanya area perpotongan mask:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    50px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: intersect;
}

Результат:

Contoh . Mode exclude

Menampilkan area yang bukan merupakan area umum:

html<img id="image" src="image.jpg">
css#image {
  width: 500px;
  height: 281px;
  mask-image: 
    url("heart.svg"),
    url("arrow.svg");
  mask-position: 
    100px 50px,
    50px 30px;
  mask-size: 150px;
  mask-repeat: no-repeat;
  mask-composite: exclude;
}

Результат:

Contoh . Kombinasi dengan gradien

Penggunaan dengan mask gradien:

html<div id="gradient-box"></div>
css#gradient-box {
  width: 400px;
  height: 400px;
  background: linear-gradient(45deg, red, yellow, green, blue);
  mask-image: 
    radial-gradient(circle at 30% 30%, black 40%, transparent 70%),
    radial-gradient(circle at 70% 70%, black 40%, transparent 70%);
  mask-composite: exclude;
}

Результат:

Lihat juga

  • properti mask-image,
    menetapkan gambar untuk mask
  • properti mask,
    penyingkatan untuk semua properti masking
  • properti mask-mode,
    menentukan mode campuran mask
  • properti mix-blend-mode,
    menentukan mode campuran elemen