Une remarque ? Une suggestion ?...

Merci de participer à l'amélioration de ce site. Prenez le temps de rédiger votre remarque le plus précisément possible :

mask-composite - Propriété CSS

mask-composite

Résumé des caractéristiques de la propriété mask-composite

Description rapide
Définit comment seront combinés les masques lorsque plusieurs sont appliqués sur un élément.
Statut
Standard
Valeurs prédéfinies
add | exclude | intersect | subtract
Pourcentages
Ne s'appliquent pas.
Valeur initiale
add
Héritée par défaut
Non
Type d'animation
Discrète : lors d'une animation, la propriété mask-composite passe d'une valeur à l'autre sans transition.
Module W3C
Module CSS - Masquage
Références (W3C)
Statut du document:: CRD (document proposé pour la recommandation)

Schéma syntaxique de mask-composite.

mask-composite - Syntax DiagramSyntax diagram of the mask-composite CSS property. add add exclude exclude intersect intersect subtract subtractmask-composite:;mask-composite:;
Schéma syntaxique de la propriété mask-composite
Les liens du schéma donnent accès à plus de détails

Description de la propriété mask-composite.

La propriété 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;

Composition de trois masques avec mask-composite

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.

Syntaxes 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; mask-composite: inherit; mask-composite: revert; mask-composite: revert-layer; mask-composite: unset;

    La valeur initiale est : add.

Animation de la propriété 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 d'animation de mask-composite

Simulateur.

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.


mask-composite :

-webkit-mask-composite :

Premier masque
Deuxième masque
Élément masqué
(premier exemple)

Prise en charge par les navigateurs (compatibilité).

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.

Colonne 1
Prise en charge par des navigateurs des techniques de masquage, consistant à découper un élément d'après une image ou une forme géométrique.
Colonne 2
Support de la propriété mask-composite
1
Masking
2
mask-composite
Estimation de la prise en charge en pourcentage du parc actuel.
73%
71%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Androïd Brower

Baidu Browser

Chrome

Chrome pour Androïd

Edge

Firefox

Firefox pour Androïd

Internet Explorer

KaiOS Browser

Opéra

Opéra Mobile

QQ Browser

Safari

Safari sur IOS

Samsung Internet

Oméra mini

Voir aussi, dans le même module de standardisation que mask-composite.

Les spécifications CSS éditées par le W3C sont organisées en modules. mask-composite fait partie du Module CSS - Masquage (CSS Masking Module). Les définitions suivantes sont également décrites dans ce même module.

Propriétés.

Définit la partie visible de l'élément (découpage).
Définit la partie visible de l'élément, délimitée par une forme géométrique (rectangle, polygone...)
Définit comment gérer les formes creuses.
Résumé des paramètres de masquage.
Définit tous les paramètres d'un masque pour la bordure d'un élément.
Définit comment le masque doit agir (luminance, alpha).
Définit le décalage éventuel du masque de bordure éventuel par rapport à l'élément.
Définit le mode de répétition du masque.
Définit comment l'image utilisée comme masque doit être découpée.
Désigne l'image qui sera utilisée comme masque (masque du type bordure).
Définit l'épaisseur de la bordure pour l'application d'un masque.
Définit la zone concernée par le masquage.
Désigne l'image ou le fichier SVG qui sera utilisé comme masque.
Définit le mode de masquage (couche alpha, luminance...)
Définit la référence pour le positionnement du masque.
Position du masque.
Définit le mode de répétition du masque lorsque celui-ci est plus petit que l'élément à masquer.
Fixe les dimensions du masque.