Mask-composite - Propriété CSS
Résumé des caractéristiques de la propriété mask-composite
add
| exclude
| intersect
| subtract
add
mask-composite
passe d'une valeur à l'autre sans transition.Schéma de la syntaxe de mask-composite
.
mask-composite
.Cliquez sur les liens du schéma pour plus de précisons sur les valeurs.
Description de la propriété mask-composite
.
mask-composite
n'est pas encore bien reconnue par tous les navigateurs (2022).
La fonctionnalité de masquage en elle-même pose encore beaucoup de problèmes de compatibilité.
Doublez les syntaxes avec la variante -webkit-
mask-composite
pour améliorer la compatibilité.
Le masquage consiste à cacher certaines parties d'un élément en fonction d'une image (désignée comme étant le masque). Cette possibilité est relativement récente et est définie par le W3C dans le module "CSS Masking".
La propriété mask-composite
définit comment interagissent les masques lorsque plusieurs sont appliqués à un élément.
Plus précisément elle indique comment un des masques (dénommé "la source") interagit avec celui qui est directement en dessous de lui
(nommé "la destination").
Si mask-composite
est appliquée sur le dernier masque, elle est ignorée. Cette propriété ne s'applique que entre deux masques,
elle ne définit pas l'interaction entre un masque et le contenu de l'élément.
L'ordre des masques est défini par la propriété mask-image
ou par la propriété raccourcie mask
.
Par exemple la syntaxe suivante énumère deux masques. Le masque carre.png
étant au dessus de cercle.png
.
mask-composite
doit donc être appliquée sur carre.png
, qui sera alors la source, pour définir son interaction avec
cercle.png
, qui sera alors la destination.
Appliquée sur cercle.png
elle n'aura aucun effet.
mask-image: url('carre.png'), url('cercle.png');
Lorsqu'il y a plus de deux masques, mask-composite
accepte plusieurs valeurs séparées par des virgules.
Dans l'exemple ci-dessous, l'opérateur exclude
est d'abord appliqué sur le masque 2, par rapport au masque 3,
puis l'opérateur add
est appliqué sur le masque 1 par rapport au résultat de la composition des masques 2 et 3.
L'application du masque résultat sur le contenu se fait après que toutes les opérations de combinaisons entre masque aient été réalisées.
mask-image: masque1, masque2, masque3;
mask-composite: add, exclude;
Pour plus d'informations, reportez vous à ces explications sur les masques multiples.
Vous trouverez également des informations générales sur la technique de masquage sur la page de mask
.
Valeurs pour mask-composite
.
Dans ces exemples de syntaxe, "la source" désigne le masque qui est au dessus, et "la destination" désigne celui qui est directement en dessous.
- mask-composite: add;
- mask-composite: subtract;
- mask-composite: intersect;
- mask-composite: exclude;
- mask-composite: clear; ⚠ mask-composite: copy; ⚠ mask-composite: xor; ⚠ mask-composite: Etc...
De nombreuses valeurs, non standardisées par le W3C sont reconnues par certains navigateurs avec le préfixe
-webkit-
. La pérennité de ces valeurs n'est pas garantie : il est préférable de ne pas les utiliser. Notre simulateur ci-dessous les présente tout de même et permet de se rendre compte de leur effet. - mask-composite: initial; (
add
) mask-composite: inherit; mask-composite: revert; mask-composite: revertLayer; mask-composite: unset;Les valeurs communes sont présentées sur ces pages :
initial
,inherit
,revert
,revert-layer
,unset
.
Exemple d'animation de mask-composite
.
Deux animations ont été créées pour cet exemple. La première avec les valeurs standardisées par le W3C, et la deuxième avec les valeurs
préfixées par -webkit-
, donc non standards.
Ceci veut dire que vous n'aurez pas le même résultat suivant le navigateur que vous utilisez.
Dans tous les cas, l'animation montre le logo du navigateur Edge, plus ou moins dévoilé en fonction de l'animation sur mask-composite
.

Exemple interactif avec la propriété mask-composite
.
L'exemple est composé de deux masques et d'un élément constitué en fait d'un simple carré gris (à droite).
Les deux masques sont des cercles noirs totalement opaques, sur un fond totalement transparent. Leur code SVG est consultable.
Les deux masques sont appliqués à l'élément de droite. Observez l'effet de la propriété mask-composite
.
On note aussi que le navigateur Chrome accepte plus de valeurs pour la propriété mask-composite
en la faisant précéder du préfixe -webkit-
,
mais ces valeurs ne sont pas standards.
(premier exemple)
Compatibilité des navigateurs avec mask-composite
.
La propriété mask-composite
est relativement bien prise en charge par les navigateurs, mais il y a cependant quelques exceptions.
Comme on l'a vu dans les différents exemples, pour que le fonctionnement soit correct sur Chrome, sur Edge, et probablement sur
d'autres navigateurs, il est nécessaire de doubler la syntaxe en ajoutant le préfixe -webkit-
.
De plus, certaines valeurs de cette propriété ne sont pas standardisées, et reconnues par certains navigateurs seulement.
On évitera d'utiliser mask-composite
avec ces valeurs.
mask-composite
qui détermine comment doivent être mélangés les différents masques sur un même élément.Remarques :
(1) Nécessite le préfixe -webkit-
.
Supporte les propriétés mask-image
et mask-box-image
mais pas les autres propriétés relatives aux masques.
(2) Voir aussi la propriété -webkit-mask-composite
qui offre des fonctionnalités comparables, avec des valeurs différentes.
une image
mask-composite
Navigateurs sur ordinateurs :
Navigateurs sur mobiles :
Navigateurs obsolètes ou marginaux :

Internet Explorer

UC Browser pour Androïd

Opéra Mobile

QQ Browser

Baidu Browser

Samsung Internet

Safari

Safari sur IOS

Chrome

Opéra

Edge

Chrome pour Androïd

Firefox pour Androïd

Firefox

Androïd Brower

KaiOS Browser

Opéra mini
Historique de la propriété mask-composite
-
Module CSS - Masquage - Niveau 1
Introduction des techniques de masquage par image. Et première définition de la propriété résuméemask
.15 Novembre 2012Document de travail.26 Août 2014Candidat à la recommandation.
Au sujet des techniques de masquage, voir aussi.
La propriété mask-composite
et les propriétés énumérées ci-dessous sont présentées dans la spécification qui standardise tout ce qui concerne le masquage :
CSS Masking Module (Module CSS - Masquage).