aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/svg/element/mask/index.html
blob: b771cc8724ea7254fa67fbc4a9e257c403e48c0c (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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
---
title: <mask>
slug: Web/SVG/Element/mask
tags:
  - Element
  - Masque
  - NeedsCompatTable
  - SVG
  - SVG Container
translation_of: Web/SVG/Element/mask
---
<div>{{SVGRef}}</div>

<p>L'élément <strong><code>&lt;mask&gt;</code></strong> définit un masque alpha. Ce masque peut par la suite être appliqué sur une forme en utilisant la propriété {{SVGAttr("mask")}}.</p>

<p>Le masque permet de rendre des zones de l'élément sur lequel est appliqué (semi-)transparentes. On peut par exemple créer un effet de fondu en utilisant un dégradé, ce que le détourage ({{SVGElement('clipPath')}}) ne permet pas.</p>

<div id="Example">
<div class="hidden">
<pre class="brush: css">html,body,svg { height:100% }</pre>
</div>

<pre class="brush: html">&lt;svg viewBox="-10 -10 120 120"&gt;
  &lt;mask id="myMask"&gt;
    &lt;!-- Tous les pixels blancs sont visibles --&gt;
    &lt;rect x="0" y="0" width="100" height="100" fill="white" /&gt;

    &lt;!-- Tous les pixels noirs sont invisibles --&gt;
    &lt;path d="M10,35 A20,20,0,0,1,50,35 A20,20,0,0,1,90,35 Q90,65,50,95 Q10,65,10,35 Z" fill="black" /&gt;
  &lt;/mask&gt;

  &lt;polygon points="-10,110 110,110 110,-10" fill="orange" /&gt;

  &lt;!-- Avec ce masque, on "perfore" un trou en forme de coeur à l'intérieur du cercle --&gt;
  &lt;circle cx="50" cy="50" r="50" mask="url(#myMask)" /&gt;
&lt;/svg&gt;</pre>

<p>{{EmbedLiveSample('Example', 100, 100)}}</p>
</div>

<h2 id="Attributs">Attributs</h2>

<dl>
 <dt id="attr-cx">{{SVGAttr("height")}}</dt>
 <dd>Définit la hauteur du masque.<br>
 <small><em>Valeur</em>: <a href="/docs/Web/SVG/Content_type#Length"><strong>&lt;length&gt;</strong></a> ; Valeur par défaut: <code>120%</code>; <em>Animation</em>: <strong>oui</strong></small></dd>
 <dt>{{SVGAttr("maskContentUnits")}}</dt>
 <dd>Définit le système de coordonnées pour le contenu du <code>&lt;mask&gt;</code>.<br>
 <small><em>Valeur</em>: <code>userSpaceOnUse</code>|<code>objectBoundingBox</code> ; <em>Valeur par défaut</em>: <code>userSpaceOnUse</code>; <em>Animation</em>: <strong>oui</strong></small></dd>
 <dt>{{SVGAttr("maskUnits")}}</dt>
 <dd>Définit le système de coordonnées pour les attributs {{SVGAttr("x")}}, {{SVGAttr("y")}}, {{SVGAttr("width")}} et {{SVGAttr("height")}} du <code>&lt;mask&gt;</code>.<br>
 <small><em>Valeur</em>: <code>userSpaceOnUse</code>|<code>objectBoundingBox</code> ; <em>Valeur par défaut</em>: <code>objectBoundingBox</code>; <em>Animation</em>: <strong>oui</strong></small></dd>
 <dt id="attr-cx">{{SVGAttr("x")}}</dt>
 <dd>Définit la coordonnée de l'axe x du coin supérieur gauche du masque.<br>
 <small><em>Valeur</em>: <a href="/docs/Web/SVG/Content_type#Coordinate"><strong>&lt;coordinate&gt;</strong></a> ; <em>Valeur par défaut</em>: <code>-10%</code>; <em>Animation</em>: <strong>oui</strong></small></dd>
 <dt id="attr-cx">{{SVGAttr("y")}}</dt>
 <dd>Définit la coordonnée de l'axe y du coin supérieur gauche du masque.<br>
 <small><em>Valeur</em>: <a href="/docs/Web/SVG/Content_type#Coordinate"><strong>&lt;coordinate&gt;</strong></a> ; <em>Valeur par défaut</em>: <code>-10%</code>; <em>Animation</em>: <strong>oui</strong></small></dd>
 <dt id="attr-cx">{{SVGAttr("width")}}</dt>
 <dd>Définit la largeur du masque.<br>
 <small><em>Valeur</em>: <a href="/docs/Web/SVG/Content_type#Length"><strong>&lt;length&gt;</strong></a> ; Valeur par défaut: <code>120%</code>; <em>Animation</em>: <strong>oui</strong></small></dd>
</dl>

<h3 id="Attributs_globaux">Attributs globaux</h3>

<dl>
 <dt><a href="/fr/docs/Web/SVG/Attribute/Core">Attributs de base</a></dt>
 <dd><small>Notamment: {{SVGAttr('id')}}</small></dd>
 <dt><a href="/fr/docs/Web/SVG/Attribute/Styling">Attributs de style</a></dt>
 <dd><small>{{SVGAttr('class')}}, {{SVGAttr('style')}}</small></dd>
 <dt><a href="/fr/docs/Web/SVG/Attribute/Conditional_Processing">Attributs de traitement conditionnel</a></dt>
 <dd><small>Notamment: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}}</small></dd>
 <dt><a href="/fr/docs/Web/SVG/Attribute/Presentation">Attributs de présentation</a></dt>
 <dd><small>Notamment: {{SVGAttr('clip-path')}}, {{SVGAttr('clip-rule')}}, {{SVGAttr('color')}}, {{SVGAttr('display')}}, {{SVGAttr('fill')}}, {{SVGAttr('fill-opacity')}}, {{SVGAttr('fill-rule')}}, {{SVGAttr('filter')}}, {{SVGAttr('mask')}}, {{SVGAttr('opacity')}}, {{SVGAttr('shape-rendering')}}, {{SVGAttr('stroke')}}, {{SVGAttr('stroke-dasharray')}}, {{SVGAttr('stroke-dashoffset')}}, {{SVGAttr('stroke-linecap')}}, {{SVGAttr('stroke-linejoin')}}, {{SVGAttr('stroke-miterlimit')}}, {{SVGAttr('stroke-opacity')}}, {{SVGAttr('stroke-width')}}, {{SVGAttr("transform")}}, {{SVGAttr('vector-effect')}}, {{SVGAttr('visibility')}}</small></dd>
</dl>

<h2 id="Notes_d'usage">Notes d'usage</h2>

<p>{{svginfo}}</p>

<h2 id="Spécifications">Spécifications</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Spécification</th>
   <th scope="col">Statut</th>
   <th scope="col">Commentaire</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('CSS Masks', '#MaskElement', '&lt;mask&gt;')}}</td>
   <td>{{Spec2('CSS Masks')}}</td>
   <td> </td>
  </tr>
  <tr>
   <td>{{SpecName('SVG1.1', 'masking.html#Masking', '&lt;mask&gt;')}}</td>
   <td>{{Spec2('SVG1.1')}}</td>
   <td>Définition initiale</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>

<p>{{Compat("svg.elements.mask")}}</p>

<h2 id="Voir_aussi">Voir aussi</h2>

<ul>
 <li>Élément de détourage: {{SVGElement("clipPath")}}</li>
 <li>Propriétés CSS de masque: {{cssxref("mask")}}, {{cssxref("mask-image")}},{{cssxref("mask-mode")}}, {{cssxref("mask-repeat")}}, {{cssxref("mask-position")}}, {{cssxref("mask-clip")}}, {{cssxref("mask-origin")}}, {{cssxref("mask-composite")}}, {{cssxref("mask-size")}}, {{cssxref("pointer-events")}}</li>
</ul>