mask-repeat

La propriété mask-repeat définit la façon dont les images de masque sont répétées. Une image de masque peut être répétée horizontalement, verticalement, dans les deux directions ou pas du tout.

css
/* Syntaxe avec une valeur */
mask-repeat: repeat-x;
mask-repeat: repeat-y;
mask-repeat: repeat;
mask-repeat: space;
mask-repeat: round;
mask-repeat: no-repeat;

/* Syntaxe avec deux valeurs */
/* Première valeur : répétition horizontale */
/* Seconde valeur : répétition verticale */
mask-repeat: repeat space;
mask-repeat: repeat repeat;
mask-repeat: round space;
mask-repeat: no-repeat round;

/* Valeurs globales */
mask-repeat: inherit;
mask-repeat: initial;
mask-repeat: unset;

Par défaut, les images répétées sont rognées aux limites de l'élément mais on peut également les adapter pour qu'elles soient également réparties sur l'élément : en les redimensionnant si nécessaire (round) ou en les espaçant (space).

Syntaxe

Une ou plusieurs valeurs <repeat-style>, séparées par des virgules.

Valeurs

<repeat-style>

La notation utilisant une seule valeur est une notation raccourcie qui possède un équivalent avec deux valeurs :

Valeur unique Équivalent sur deux valeurs
repeat-x repeat no-repeat
repeat-y no-repeat repeat
repeat repeat repeat
space space space
round round round
no-repeat no-repeat no-repeat

Lorsqu'on utilise deux valeurs, la première indique le motif de répétition sur l'axe horizontal et la deuxième sur l'axe vertical. Voici une définition de chacun des mots-clés :

repeat L'image est répétée autant de fois que nécessaire pour recouvrir la zone dédiée au masque. La dernière image sera rognée si nécessaire.
space L'image est répétée autant que possible sans rognage. La première et la dernière image sont accolées aux bords de l'élément et des espaces sont repartis de façon égale entre les images. La propriété mask-position est ignorée sauf s'il n'y a qu'une seule image qui puisse être affichée sans être rognée. Le seul cas où space est utilisé et qu'une image est rognée se produit lorsque l'image est trop grande pour être affichée.
round L'image est répétée autant que possible et est étirée si nécessaire afin qu'il n'y ait ni rognage ni espace restant.
no-repeat Il n'y a aucune répétition de l'image (dès lors, il est possible que toute la zone ne soit pas recouverte par cette image). La position de l'image est définie grâce à la propriété mask-position.

Définition formelle

Valeur initialerepeat
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éenon
Valeur calculéeDeux mots-clés, chacun décrivant une dimension
Type d'animationdiscrète

Syntaxe formelle

mask-repeat = 
<repeat-style>#

<repeat-style> =
repeat-x |
repeat-y |
[ repeat | space | round | no-repeat ]{1,2}

Exemples

CSS

css
.exemple {
  height: 100px;
  width: 100px;
  background-color: rgb(128, 128, 128);
  border: solid black 1px;

  /* Pour voir la bordure */
  -webkit-mask-clip: content;
  mask-clip: content;

  -webkit-mask-image: url("https://developer.mozilla.org/static/img/favicon32.png");
  mask-image: url("https://developer.mozilla.org/static/img/favicon32.png");

  -webkit-mask-repeat: repeat-x;
  mask-repeat: repeat-x;
}

HTML

html
<div class="exemple"></div>

Résultat

Spécifications

Specification
CSS Masking Module Level 1
# the-mask-repeat

Compatibilité des navigateurs

BCD tables only load in the browser