<mask>

Permet de définir une ou plusieurs parties qui seront masquées dans une balise SVG avec HTML.
2 min de lecture
Believemy logo

La balise <mask> est utilisée en SVG pour définir une région masquée où certaines parties d'un élément enfant seront visibles et d'autres non.

Elle permet de créer des effets visuels avancés, comme des transparences, des découpages ou des ombrages.

 

Structure et syntaxe de la balise <mask>

Structure

Voici un exemple de base :

HTML
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
    <defs>
        <mask id="myMask">
            <rect x="0" y="0" width="200" height="200" fill="white" />
            <circle cx="100" cy="100" r="50" fill="black" />
        </mask>
    </defs>

    <rect x="0" y="0" width="200" height="200" fill="orange" mask="url(#myMask)" />
</svg>

Dans cet exemple :

  • La balise <mask> définit un masque appelé myMask ;
  • On crée ensuite un rectangle orange avec <rect> qui est masqué avec ce même masque, laissant visible une zone circulaire au centre ;
  • Les zones blanches du masque sont visibles, et les zones noires deviennent transparentes.

Voici notre résultat :

 

Exemple avancé

Voici un exemple plus complexe utilisant des dégradés et du texte :

HTML
<svg width="300" height="200" xmlns="http://www.w3.org/2000/svg">
    <defs>
        <mask id="textMask">
            <rect x="0" y="0" width="300" height="200" fill="white" />
            <text x="50" y="100" font-size="60" fill="black" font-family="Arial">MASK</text>
        </mask>
    </defs>

    <rect x="0" y="0" width="300" height="200" fill="url(#gradient)" mask="url(#textMask)" />
    <defs>
        <linearGradient id="gradient" gradientTransform="rotate(90)">
            <stop offset="0%" stop-color="red" />
            <stop offset="100%" stop-color="blue" />
        </linearGradient>
    </defs>
</svg>

Dans cet exemple :

  • Un masque texte (<text>) est appliqué à un rectangle dégradé ;
  • Seules les zones correspondant au texte sont visibles.

Essayez par vous-même :

 

Attributs de la balise <mask>

La balise <mask> prend en charge plusieurs attributs :

AttributDescription
idIdentifiant unique du masque, utilisé pour le référencer dans d’autres éléments via mask="url(#id)".
maskUnitsDéfinit le système de coordonnées du masque (userSpaceOnUse ou objectBoundingBox).
maskContentUnitsSpécifie le système de coordonnées pour le contenu du masque (userSpaceOnUse ou objectBoundingBox).
x, yPosition horizontale et verticale du masque.
width, heightDimensions du masque.

 

Compatibilité des navigateurs

La balise <mask> est compatible avec la majorité des navigateurs modernes :

NavigateurCompatibilité
ChromeOui
FirefoxOui
SafariOui
EdgeOui
Internet ExplorerPartielle (avec certaines limitations)

Termes connexes

Découvrez notre glossaire HTML et CSS

Parcourez les termes et définitions les plus couramment utilisés dans le domaine du développement HTML et CSS.

Partager cet article

Tu veux nous aider ? Fais un lien vers cet article sur tes réseaux ou encore mieux : sur ton site, dans un article ou dans ta newsletter.