--- title: transform slug: Web/SVG/Attribute/transform tags: - Attribut - SVG translation_of: Web/SVG/Attribute/transform --- {{SVGRef}} L'attribut **`transform`** définit une liste de définitions de transformation qui sont appliquées à l'élément ainsi qu'à ses éléments fils. ## Exemple ```css hidden html,body,svg { height:100% } ``` ```html           ``` {{EmbedLiveSample('Exemple', '100%', 200)}} > **Note :** Pour SVG2, `transform` est un attribut de présentation et peut donc être utilisé comme une propriété CSS. Attention toutefois aux différences de syntaxe entre la propriété CSS et cet attribut. Voir la documentation de la propriété {{cssxref('transform')}} pour la syntaxe . En tant qu'attribut de présentation, **`transform`** peut être utilisé par n'importe quel élément (en SVG 1.1, seuls les 16 éléments suivants pouvaient l'utiliser : {{SVGElement('a')}}, {{SVGElement('circle')}}, {{SVGElement('clipPath')}}, {{SVGElement('defs')}}, {{SVGElement('ellipse')}}, {{SVGElement('foreignObject')}}, {{SVGElement('g')}}, {{SVGElement('image')}}, {{SVGElement('line')}}, {{SVGElement('path')}}, {{SVGElement('polygon')}}, {{SVGElement('polyline')}}, {{SVGElement('rect')}}, {{SVGElement('switch')}}, {{SVGElement('text')}} et {{SVGElement('use')}}). Pour des raisons historiques liées à SVG 1.1, {{SVGElement('linearGradient')}} et {{SVGElement('radialGradient')}} prennent en charge l'attribut `gradientTransform` et {{SVGElement('pattern')}} permet d'utiliser `patternTransform`. Ces deux attributs sont exactement synonymes de l'attribut `transform`.
Valeur <transform-list>
Valeur par défaut none
Peut être animé Oui
## Fonctions de transformation Les fonctions de transformation suivantes peuvent être utilisées par l'attribut `transform`. > **Attention :** Selon la spécification, on devrait également pouvoit utiliser les fonctions CSS {{cssxref('transform-function', 'transform functions')}} mais la compatibilité n'est pas assurée. ### `matrix()` La fonction de transformation `matrix( )` permet d'appliquer une transformation géométrique décrite par 6 coefficients et `matrix(a,b,c,d,e,f)` sera équivalent à la matrice de transformation mathématique :(acebdf001)\begin{pmatrix} a & c & e \\ b & d & f \\ 0 & 0 & 1 \end{pmatrix}Le calcul des coordonnées s'obtient de la façon suivante :(xnewCoordSysynewCoordSys1)=(acebdf001)(xprevCoordSysyprevCoordSys1)=(axprevCoordSys+cyprevCoordSys+ebxprevCoordSys+dyprevCoordSys+f1) \begin{pmatrix} x*{\mathrm{newCoordSys}} \\ y*{\mathrm{newCoordSys}} \\ 1 \end{pmatrix} = \begin{pmatrix} a & c & e \\ b & d & f \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x*{\mathrm{prevCoordSys}} \\ y*{\mathrm{prevCoordSys}} \\ 1 \end{pmatrix} = \begin{pmatrix} a x*{\mathrm{prevCoordSys}} + c y*{\mathrm{prevCoordSys}} + e \\ b x*{\mathrm{prevCoordSys}} + d y*{\mathrm{prevCoordSys}} + f \\ 1 \end{pmatrix} #### Exemples ```css hidden html,body,svg { height:100% } ``` ```html ``` {{EmbedLiveSample('matrix()', '100%', 200)}} ### `translate()` La fonction de transformation `translate( [])` permet de déplacer un objet de `x` sur l'axe horizontal et de `y` sur l'axe vertical (i.e. `xnew = xold + , ynew = yold + `). Si `y` n'est pas fourni, la valeur par défaut est 0. #### Exemples ```css hidden html,body,svg { height:100% } ``` ```html                 ``` {{EmbedLiveSample('translate()', '100%', 200)}} ### `scale()` La fonction de transformation `scale( [])` définit une homothétie d'un facteur `x` en horizontal et d'un facteur `y` en vertical. Si la valeur `y` n'est pas fournie, on considère qu'elle est égale à `x`. #### Exemples ```css hidden html,body,svg { height:100% } ``` ```html                 ``` {{EmbedLiveSample('scale()', '100%', 200)}} ### `rotate()` La fonction de transformation `rotate( [ ])` définit une rotation de `a` degrés autour d'un point de coordonnées `x` et `y`. Si les paramètres optionnels `x` et `y` ne sont pas fournis, la rotation est effectuée autour de l'origine dans le système de coordonnés actuel. #### Exemples ```css hidden html,body,svg { height:100% } ``` ```html           ``` {{EmbedLiveSample('rotate()', '100%', 200)}} ### `skewX()` La fonction de transformation `skewX()` définit une distorsion horizontale de `a` degrés. #### Exemples ```css hidden html,body,svg { height:100% } ``` ```html     ``` {{EmbedLiveSample('skewX()', '100%', 200)}} ### `skewY()` La fonction de transformation `skewY()` définit une distorsion verticale de `a` degrés. #### Exemples ```css hidden html,body,svg { height:100% } ``` ```html     ``` {{EmbedLiveSample('skewY()', '100%', 200)}} ## Spécifications | Spécification | État | Commentaires | | -------------------------------------------------------------------------------------------- | ---------------------------------------- | -------------------- | | {{SpecName('CSS Transforms 2', '#svg-transform', 'transform')}} | {{Spec2('CSS Transforms 2')}} | | | {{SpecName('CSS3 Transforms', '#svg-transform', 'transform')}} | {{Spec2('CSS3 Transforms')}} | | | {{SpecName("SVG2", "coords.html#TransformProperty", "transform")}} | {{Spec2("SVG2")}} | | | {{SpecName("SVG1.1", "coords.html#TransformAttribute", "transform")}} | {{Spec2("SVG1.1")}} | Définition initiale. |