diff options
Diffstat (limited to 'files/fr/web/svg/element/mask/index.md')
-rw-r--r-- | files/fr/web/svg/element/mask/index.md | 183 |
1 files changed, 82 insertions, 101 deletions
diff --git a/files/fr/web/svg/element/mask/index.md b/files/fr/web/svg/element/mask/index.md index 20f0088b0d..5341381e54 100644 --- a/files/fr/web/svg/element/mask/index.md +++ b/files/fr/web/svg/element/mask/index.md @@ -9,104 +9,85 @@ tags: - SVG Container translation_of: Web/SVG/Element/mask --- -<div>{{SVGRef}}</div> - -<p>L'élément <strong><code><mask></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> - -<h2>Exemple</h2> - -<pre class="brush: css hidden">html,body,svg { height:100% }</pre> - -<pre class="brush: html"><svg viewBox="-10 -10 120 120"> - <mask id="myMask"> - <!-- Tous les pixels blancs sont visibles --> - <rect x="0" y="0" width="100" height="100" fill="white" /> - - <!-- Tous les pixels noirs sont invisibles --> - <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" /> - </mask> - - <polygon points="-10,110 110,110 110,-10" fill="orange" /> - - <!-- Avec ce masque, on "perfore" un trou en forme de coeur à l'intérieur du cercle --> - <circle cx="50" cy="50" r="50" mask="url(#myMask)" /> -</svg></pre> - -<p>{{EmbedLiveSample('exemple', 100, 100)}}</p> - -<h2 id="Attributs">Attributs</h2> - -<dl> - <dt>{{SVGAttr("height")}}</dt> - <dd>Définit la hauteur du masque.<br> - <small><em>Valeur</em>: <a href="/docs/Web/SVG/Content_type#Length"><strong><length></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><mask></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><mask></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>{{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><coordinate></strong></a> ; <em>Valeur par défaut</em>: <code>-10%</code>; <em>Animation</em>: <strong>oui</strong></small></dd> - <dt>{{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><coordinate></strong></a> ; <em>Valeur par défaut</em>: <code>-10%</code>; <em>Animation</em>: <strong>oui</strong></small></dd> - <dt>{{SVGAttr("width")}}</dt> - <dd>Définit la largeur du masque.<br> - <small><em>Valeur</em>: <a href="/docs/Web/SVG/Content_type#Length"><strong><length></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', '<mask>')}}</td> - <td>{{Spec2('CSS Masks')}}</td> - <td> </td> - </tr> - <tr> - <td>{{SpecName('SVG1.1', 'masking.html#Masking', '<mask>')}}</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> +{{SVGRef}} + +L'élément **`<mask>`** définit un masque alpha. Ce masque peut par la suite être appliqué sur une forme en utilisant la propriété {{SVGAttr("mask")}}. + +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. + +## Exemple + +```css hidden +html,body,svg { height:100% } +``` + +```html +<svg viewBox="-10 -10 120 120"> + <mask id="myMask"> + <!-- Tous les pixels blancs sont visibles --> + <rect x="0" y="0" width="100" height="100" fill="white" /> + + <!-- Tous les pixels noirs sont invisibles --> + <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" /> + </mask> + + <polygon points="-10,110 110,110 110,-10" fill="orange" /> + + <!-- Avec ce masque, on "perfore" un trou en forme de coeur à l'intérieur du cercle --> + <circle cx="50" cy="50" r="50" mask="url(#myMask)" /> +</svg> +``` + +{{EmbedLiveSample('exemple', 100, 100)}} + +## Attributs + +- {{SVGAttr("height")}} + - : Définit la hauteur du masque. + _Valeur_: [**\<length>**](/docs/Web/SVG/Content_type#Length) ; Valeur par défaut: `120%`; _Animation_: **oui** +- {{SVGAttr("maskContentUnits")}} + - : Définit le système de coordonnées pour le contenu du `<mask>`. + _Valeur_: `userSpaceOnUse`|`objectBoundingBox` ; _Valeur par défaut_: `userSpaceOnUse`; _Animation_: **oui** +- {{SVGAttr("maskUnits")}} + - : Définit le système de coordonnées pour les attributs {{SVGAttr("x")}}, {{SVGAttr("y")}}, {{SVGAttr("width")}} et {{SVGAttr("height")}} du `<mask>`. + _Valeur_: `userSpaceOnUse`|`objectBoundingBox` ; _Valeur par défaut_: `objectBoundingBox`; _Animation_: **oui** +- {{SVGAttr("x")}} + - : Définit la coordonnée de l'axe x du coin supérieur gauche du masque. + _Valeur_: [**\<coordinate>**](/docs/Web/SVG/Content_type#Coordinate) ; _Valeur par défaut_: `-10%`; _Animation_: **oui** +- {{SVGAttr("y")}} + - : Définit la coordonnée de l'axe y du coin supérieur gauche du masque. + _Valeur_: [**\<coordinate>**](/docs/Web/SVG/Content_type#Coordinate) ; _Valeur par défaut_: `-10%`; _Animation_: **oui** +- {{SVGAttr("width")}} + - : Définit la largeur du masque. + _Valeur_: [**\<length>**](/docs/Web/SVG/Content_type#Length) ; Valeur par défaut: `120%`; _Animation_: **oui** + +### Attributs globaux + +- [Attributs de base](/fr/docs/Web/SVG/Attribute/Core) + - : Notamment: {{SVGAttr('id')}} +- [Attributs de style](/fr/docs/Web/SVG/Attribute/Styling) + - : {{SVGAttr('class')}}, {{SVGAttr('style')}} +- [Attributs de traitement conditionnel](/fr/docs/Web/SVG/Attribute/Conditional_Processing) + - : Notamment: {{SVGAttr('requiredExtensions')}}, {{SVGAttr('systemLanguage')}} +- [Attributs de présentation](/fr/docs/Web/SVG/Attribute/Presentation) + - : 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')}} + +## Notes d'usage + +{{svginfo}} + +## Spécifications + +| Spécification | Statut | Commentaire | +| ------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('CSS Masks', '#MaskElement', '<mask>')}} | {{Spec2('CSS Masks')}} | | +| {{SpecName('SVG1.1', 'masking.html#Masking', '<mask>')}} | {{Spec2('SVG1.1')}} | Définition initiale | + +## Compatibilité des navigateurs + +{{Compat("svg.elements.mask")}} + +## Voir aussi + +- Élément de détourage: {{SVGElement("clipPath")}} +- 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")}} |