Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
La propriété mask-size
définit les dimensions des images utilisées comme masques. La taille de l'image peut être contrainte, partiellement ou complètement, afin de conserver ses proportions intrinsèques.
mask
et que celle-ci est appliquée après mask-size
, la valeur sera réinitialisée avec sa valeur initiale à cause de la propriété raccourcie.Valeur initiale | auto |
---|---|
Applicabilité | tous les éléments ; en SVG, cela s'applique aux éléments conteneurs à l'exception des éléments defs et des éléments graphiques |
Héritée | non |
Média | visuel |
Valeur calculée | comme spécifié, mais avec les longueurs relatives converties en longueurs absolues |
Type d'animation | une liste répétable de , une simple liste de , une longueur, pourcentage ou calc() ; |
Ordre canonique | l'ordre unique et non-ambigu défini par la grammaire formelle |
Syntaxe
/* Valeurs avec un mot-clé */ mask-size: cover; mask-size: contain; /* Syntaxe avec une valeur */ /* qui indique la largeur de l'image */ /* la hauteur est fixée à auto */ mask-size: 50%; mask-size: 3em; mask-size: 12px; mask-size: auto; /* Syntaxe avec deux valeurs : */ /* La première valeur indique la largeur */ /* La seconde indique la hauteur */ mask-size: 50% auto; mask-size: 3em 25%; mask-size: auto 6px; mask-size: auto auto; /* Valeurs multiples pour gérer différents */ /* masques. Attention à ne pas confondre */ /* avec mask-size: auto auto */ mask-size: auto, auto; mask-size: 50%, 25%, 25%; mask-size: 6px, auto, contain; /* Valeurs globales */ mask-size: inherit; mask-size: initial; mask-size: unset;
Valeurs
<length>
- Une valeur de longueur (type
<length>
qui redimensionne l'image avec la longueur indiquée dans l'axe correspondant. Les longueurs négatives ne sont pas autorisées. <percentage>
- Une valeur de pourcentage (
<percentage>
qui indique le redimensionnement à appliquer dans l'axe correspondant à partir de l'origine définie parmask-origin
par rapport à la taille de la zone du masque. Par défaut, cette zone contient la boîte de contenu et la boîte de remplissage (padding) (on peut modifier cette zone pour choisir les boîtes concernées). Les valeurs négatives ne sont pas autorisées. auto
- Un mot-clé qui permet de redimensionner l'image du masque dans l'axe correspondant tout en conservant ses proportions.
contain
- Un mot-clé qui redimensionne l'image afin qu'elle soit aussi grande que possible et conserve ses proportions tout en étant contenue dans le contenur. Par défaut, l'image est centrée sauf si
mask-position
indique un autre paramètre. cover
- Un mot-clé qui se comporte à l'inverse de
contain
. L'image est agrandie autant que possible et ses proportions sont conservées et elle couvre toute la surface du conteneur, si les dimensions du conteneur sont différentes, l'image est rognée sur les côtés (haut et bas ou droite et gauche).
L'interprétation des valeurs se fera en fonction des dimensions intrinsèques de l'image (sa hauteur et sa largeur) et de ses proportions intrinsèques (le ratio entre la largeur et la hauteur). Une image matricielle (bitmap) possèdera toujours des dimensions intrinsèques et des proportions intrinsèques. Une image vectorielle pourra avoir des dimensions intrinsèques (et donc, de facto, des proportions intrinsèques) ou également n'avoir qu'une ou aucune dimension intrinsèque et des proportions intrinsèques ou non. Les gradients sont considérés comme des images sans dimensions ni proportions intrinsèques.
La taille de l'image affichée pour le masque est calculée de la façon suivante :
- Si les deux composants de
mask-size
sont définis et sont différents deauto
: - L'image est affichée avec la taille indiquée.
- Si
mask-size
vautcontain
oucover
: - L'image est affichée en conservant ses proportions avec la plus grande taille possible pour être contenue ou couvrire toute la zone du masque. Si l'image ne possède pas de proportions intrinsèques, sa taille d'affichage sera la taille de la zone du masque.
- Si
mask-size
vautauto
ouauto auto
: - Si l'image possède deux dimensions intrinsèques, elle sera affichée avec cette taille. Si elle ne possède pas de dimensions intrinsèques ni de proportions intrinsèques, elle sera affichée à la taille de la zone du masque. Si elle n'a aucune dimension intrinsèque mais possède des proportions intrinsèques elle sera affichée comme si
contain
avait été utilisé. Si l'image possède une dimension intrinsèque et des proportions intrinsèques, sa taille sera déterminée grâce à ses informations. Si l'image possède une dimension intrinsèque mais aucune proportion intrinsèque, la dimension connue sera utilisée pour cet axe et la seconde sera celle de la zone pour le masque. - Si
mask-size
possède un composantauto
et un autre composant différent deauto
: - Si l'image possède des proportions intrinsèques, elle sera affichée avec la dimension connue et la deuxième sera calculée à partir de la proportion. Si l'image ne possède pas de proportions intrinsèques, la valeur définie sera utilisée pour l'axe correspondant et pour l'autre axe, on utilisera la dimension intrinsèque si elle est connue, sinon, on utilisera la dimension (sur cet axe) de la zone du masque.
Syntaxe formelle
<bg-size>#où
<bg-size> = [ <length-percentage> | auto ]{1,2} | cover | contain
où
<length-percentage> = <length> | <percentage>
Exemples
CSS
.exemple { height: 100px; width: 100px; background-color: rgb(128,128,128); -webkit-mask-image: url('https://mdn.mozillademos.org/files/13024/masque2.png'); mask-image: url('https://mdn.mozillademos.org/files/13024/masque2.png'); -webkit-mask-size: auto 50%; mask-size: auto 50%; }
HTML
<div class="exemple"></div>
Résultat
Spécifications
Spécification | État | Commentaires |
---|---|---|
CSS Masking Level 1 La définition de 'mask-size' dans cette spécification. |
Candidat au statut de recommandation | Définition initiale. |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support simple | ? | Pas de support[1] | ? | ? | ? |
Fonctionnalité | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Support simple | ? | Pas de support[1] | ? | ? | ? |
[1] Cette fonctionnalité n'est pas encore implémentée sur tous les canaux, elle est uniquement disponible pour les canaux Nightly et Dev Edition bug 1251161.