Proprietatea mask-composite

Proprietatea mask-composite permite combinarea mai multor măști aplicate unui singur element. Ea determină modul în care diferitele măști vor interacționa între ele atunci când sunt suprapuse.

Sintaxă

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

Valori

Valoare Descriere
add Rezultatul este uniunea tuturor mascilor (implicit).
subtract A doua mască este scăzută din prima.
intersect Se afișează doar zona de intersecție a mascilor.
exclude Se afișează zonele care nu sunt comune pentru măști.

Exemplu . Modul add

Uniunea a două măști (inimă și săgeată):

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;
}

Результат:

Exemplu . Modul subtract

Scăderea săgeții din inimă:

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;
}

Результат:

Exemplu . Modul intersect

Afișarea doar a zonei de intersecție a mascilor:

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;
}

Результат:

Exemplu . Modul exclude

Afișarea zonelor care nu sunt comune:

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;
}

Результат:

Exemplu . Combinație cu degradări

Utilizarea cu măști gradiente:

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;
}

Результат:

Vezi și

  • proprietatea mask-image,
    stabilește imaginile pentru măști
  • proprietatea mask,
    prescurtare pentru toate proprietățile de mascare
  • proprietatea mask-mode,
    definește modul de suprapunere al mastii
  • proprietatea mix-blend-mode,
    definește modul de amestecare a elementelor