aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/svg/attribute/mask/index.md
blob: 17aeac7002ea16605e155bdc7d44e9159dd8e83e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
---
title: mask
slug: Web/SVG/Attribute/mask
translation_of: Web/SVG/Attribute/mask
---
{{SVGRef}}

L'attribut `mask` est un attribut de présentation principalement utilisé pour appliquer un trou (défini par un élément {{ SVGElement("mask") }}) sur l'élément qui possède cet attribut.

> **Note :** On peut aussi utiliser l'attribut {{cssxref('mask')}} en CSS.

## Exemple

```css hidden
html,body,svg { height:100% }
```

```html
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
  <mask id="monMask" maskContentUnits="objectBoundingBox">
    <rect    fill="white" x="0" y="0" width="100%" height="100%" />
    <polygon fill="black" points="0.5,0.2 0.68,0.74 0.21,0.41 0.79,0.41 0.32,0.74" />
  </mask>

  <!-- Fait un trou de la forme d'une étoile sur le cercle rouge,
  ce qui laisse apparaître le cercle jaune situé dessous. -->
  <circle cx="50" cy="50" r="20" fill="yellow" />
  <circle cx="50" cy="50" r="45" fill="red"
          mask="url(#monMask)"/>
</svg>
```

{{EmbedLiveSample('Exemple', '100%', 150)}}

Depuis SVG2, l'attribut {{cssxref('mask')}} est défini comme une propriété CSS et comme une propriété raccourcie pour beaucoup d'autres propriétés: {{cssxref('mask-image')}}, {{cssxref('mask-mode')}}, {{cssxref('mask-repeat')}}, {{cssxref('mask-position')}}, {{cssxref('mask-clip')}}, {{cssxref('mask-origin')}}, {{cssxref('mask-size')}} et {{cssxref('mask-composite')}}.

Étant un attribut de présentation, il peut être appliqué sur n'importe quel élément, mais il a un effet visible surtout sur les éléments suivants: {{SVGElement('a')}}, {{SVGElement('circle')}}, {{SVGElement('clipPath')}}, {{SVGElement('ellipse')}}, {{SVGElement('g')}}, {{SVGElement('glyph')}}, {{SVGElement('image')}}, {{SVGElement('line')}}, {{SVGElement('marker')}}, {{SVGElement('mask')}}, {{SVGElement('path')}}, {{SVGElement('pattern')}}, {{SVGElement('polygon')}}, {{SVGElement('polyline')}}, {{SVGElement('rect')}}, {{SVGElement('svg')}}, {{SVGElement('symbol')}}, {{SVGElement('text')}} et {{SVGElement('use')}}.

## Contexte d'utilisation

<table class="standard-table">
  <tbody>
    <tr>
      <th scope="row">Valeur</th>
      <td>Voir la propriété CSS {{cssxref('mask')}}</td>
    </tr>
    <tr>
      <th scope="row">Valeur par défaut</th>
      <td><code>none</code></td>
    </tr>
    <tr>
      <th scope="row">Animable</th>
      <td>Oui</td>
    </tr>
  </tbody>
</table>

## Compatibilité des navigateurs

{{Compat("svg.attributes.presentation.mask")}}

## Spécifications

<table class="standard-table">
  <thead>
    <tr>
      <th scope="col">Spécification</th>
      <th scope="col">Status</th>
      <th scope="col">Commentaire</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>{{SpecName("CSS Masks", "#the-mask", 'mask')}}</td>
      <td>{{Spec2("CSS Masks")}}</td>
      <td>
        <p>
          Étend cet usage pour les éléments HTML en créant un raccourci pour les
          nouvelles propriétés <code>mask-*</code> défini dans cette
          spécification.
        </p>
      </td>
    </tr>
    <tr>
      <td>
        {{SpecName('SVG1.1', 'masking.html#MaskProperty', 'mask')}}
      </td>
      <td>{{Spec2('SVG1.1')}}</td>
      <td>Définition initiale</td>
    </tr>
  </tbody>
</table>