Propriété mask-composite

La propriété mask-composite permet de combiner plusieurs masques appliqués à un même élément. Elle définit comment les différents masques interagiront entre eux lors de leur superposition.

Syntaxe

csssélecteur {
  mask-composite: <compositing-operator>#;
}

Valeurs

Valeur Description
add Le résultat est l'union de tous les masques (par défaut).
subtract Le deuxième masque est soustrait du premier.
intersect Seule la zone d'intersection des masques est affichée.
exclude Les zones qui ne sont pas communes aux masques sont affichées.

Exemple . Mode add

Union de deux masques (cœur et flèche) :

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

Результат:

Exemple . Mode subtract

Soustraction de la flèche du cœur :

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

Результат:

Exemple . Mode intersect

Affichage uniquement de la zone d'intersection des masques :

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

Результат:

Exemple . Mode exclude

Affichage des zones qui ne sont pas communes :

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

Результат:

Exemple . Combinaison avec des dégradés

Utilisation avec des masques en dégradé :

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

Результат:

Voir aussi

  • propriété mask-image,
    définit les images pour les masques
  • propriété mask,
    raccourci pour toutes les propriétés de masquage
  • propriété mask-mode,
    définit le mode de fusion du masque
  • propriété mix-blend-mode,
    définit le mode de fusion des éléments