Mask-composite - Propriété CSS
Résumé des caractéristiques de la propriété mask-composite
SVG : conteneurs sauf defs, éléments graphiques, use.
add | exclude | intersect | subtractaddmask-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.
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 (voir masques multiples).
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: intersect; mask-composite: exclude; mask-composite: subtract;
Reportez-vous à la page sur Les modes de fusion pour plus de renseignements sur ces modes de fusion.
La valeur par défaut estadd.En gros
addcorrespond à un OU logique,intersectest l'intersection,excludecorrespond à l'opérateur logique XOR, etsubtractest la différence du premier masque moins le second. - 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.
les deux masques.
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.
De plus, la propriété préfixée avec -webkit- accepte certaines valeurs qui ne sont pas standardisées, et reconnues par certains navigateurs
seulement. On évitera d'utiliser -webkit-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-compositeNavigateurs 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).



