Transform-style - Propriété CSS

transform-style

Résumé des caractéristiques de la propriété transform-style

Description rapide
Définit comment sont rendus les éléments soumis à une transformation 3D.
Statut
Standard
S'applique à
Tous les éléments transformables.
Utilisable sur
HTML
Valeurs prédéfinies
flat | preserve-3d
Pourcentages
Ne s'appliquent pas.
Valeur initiale
flat
Héritée par défaut
Non.
Type d'animation
Discrète : lors d'une animation, la propriété transform-style passe d'une valeur à l'autre sans transition.
Module W3C
Module CSS - Transformations
Références (W3C)
Statut du document: WD (document de travail)

Schéma de la syntaxe de transform-style.

transform-style - Syntax DiagramSyntax diagram of the transform-style CSS property. flat flat preserve-3d preserve-3dtransform-style:;transform-style:;
Schéma syntaxique de la propriété transform-style.
Cliquez sur les liens du schéma pour plus de précisons sur les valeurs.

Description de la propriété transform-style.

Définit comment se comportent les enfants de l'élément lorsque ce dernier subit une transformation 3d. Plus précisément transform-style définit si les enfants de l'élément ont leur propre espace 3d ou bien, à l'inverse, s'ils sont toujours dans le même plan que le parent.

Dans l'exemple ci-dessous, l'élément parent est en bleu, et l'élément enfant en vert. Ce dernier a été tourné de 45 degrés autour de l'axe X. Cette rotation l'a fait sortir du plan de son parent. C'est bien visible sur le résultat, parce que la propriété transform-style a été fixée à la valeur preserve-3d.

Plusieurs autres propriétés interfèrent avec transform-style et forcent les enfants à rester dans le plan du parent :

  • overflow : avec une valeur différente de visible ou clip.
  • opacity : lorsque l'opacité est inférieure à 1 (élément semi-transparent ou transparent).
  • filter : dès qu'un filtre graphique est appliqué (flou, changement de la teinte, etc).
  • clip : toute valeur différente de auto.
  • clip-path : toute valeur différente de none.
  • isolation : avec la valeur isolate.
  • mask-image : toute valeur différente de none.
  • mask-border-source : toute valeur différente de none.
  • mix-blend-mode : toute valeur différente de normal.
  • contain : avec la valeur paint.

Valeurs pour transform-style.

  • transform-style: flat;

    Valeur par défaut. Les éléments enfants n'ont pas d'espace 3D qui leur serait propre : ils ne peuvent que rester dans le même plan que l'élément parent.

  • transform-style: preserve-3d;

    Les éléments enfants de l'élément animé ont leur propre espace 3D, ce qui permet des restitutions plus réalistes des effets 3d.

  • transform-style: initial; (flat) transform-style: inherit; transform-style: revert; transform-style: revertLayer; transform-style: unset;

    Consultez les pages suivantes pour plus de détails : initial, inherit, revert, revert-layer, unset.

Exemple d'animation de transform-style.

L'exemple ci-dessous est composé d'un élément bleu (le parent), contenant un élément vert (qui est donc son enfant). Le parent a été tourné autour de l'axe X de 60 degrés, tandis que l'élément enfant a été monté (axe Z) de 30 pixels.

L'animation est faite sur la propriété transform-style.Quand cette dernière passe par la valeur flat, le décalage de l'élément vert n'apparaît plus : l'élément enfant reste confiné dans le plan de son parent.

Le simulateur ci-dessous présente deux constructions, composées chacune d'un élément parent (bleu) contenant un élément enfant (en vert). En mode flat, il est impossible de voir les transformations qui ont été appliquées à l'élément enfant, car ce dernier reste dans le plan du parent et tourne avec lui. Dans le premier exemple, l'élément enfant est même invisible car il a été tourné de 90° autour de l'axe vertical (Y).
En mode preserve-3d on se rend compte des transformations qui ont été appliquées à chacun des éléments enfants.

transform-style :

Compatibilité des navigateurs avec transform-style.

Colonne 1
Prise en charge générale des transformation 2D, incluant les rotations, les translations d'éléments, etc.
Colonne 2
Prise en charge générale des animations en 3D, incluant le support pour la gestion de la perspective et le support pour la propriété backface-visibility.
Colonne 3
Support par les navigateurs de la propriété transform-style qui définit comment se comporte les enfants d'un élément transformé en 3D.

Remarques :

(1) Ne supporte pas les transformations 2D sur les éléments SVG. Utilisez l'attribut transform à la place.

(2) Internet Explorer ne supporte pas transform-style:preserve-3d limitant ainsi l'imbrication des animations.

1
Transformations
2D
2
Transformations
3D
3
Propriété
transform-style
Estimation de la prise en charge globale.
97%
97%
95%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Opéra

Firefox pour Androïd

Samsung Internet

Chrome

Edge

Firefox

Androïd Brower

Chrome pour Androïd

Baidu Browser

QQ Browser

Safari

Safari sur IOS

UC Browser pour Androïd

Opéra mini

Histoire de la propriété transform-style.

Voir aussi, concernant les transformations.

Le module "Module CSS - Transformations" (ou CSS Transforms Module en anglais) décrit la propriété transform-style, et regroupe également toutes les définitions concernant les transformations en CSS :

Propriétés :

backface-visibility
Visibilité de la face arrière de l'élément (pendant sa rotation).
perspective
Effet de perspective appliqué à un élément ayant subi une transformation 3D.
perspective-origin
Position de l'observateur dans le cas d'une déformation 3D avec perspective.
rotate
Définit une rotation à appliquer à l'élément.
scale
Définit une mise à l'échelle de l'élément (agrandissement ou réduction).
transform
Applique une ou plusieurs transformations géométriques (rotations, agrandissements, etc.).
transform-box
Définit la boîte de référence pour les transformations.
transform-origin
Définit le point d'origine pour les transformations.
translate
Applique une translation à un élément (un déplacement linéaire).

Fonctions :

matrix()
Applique une transformation composite à un élément (translations, rotations...).
matrix3d()
Applique une série de transformations 3D à un élément.
perspective()
Définit la hauteur de l'observateur dans le cas d'une transformation 3D.
rotate()
Définit une rotation à appliquer à l'élément en 2D (dans le plan de l'écran).
rotate3d()
Définit une rotation 3D à appliquer à un élément autour d'un axe quelconque en 3D.
rotateX()
Définit une rotation de l'élément autour de l'axe X (en 3D),
rotateY()
Définit une rotation 3D de l'élément autour de l'axe Y.
rotateZ()
Définit une rotation de l'élément autour de l'axe Z.
scale()
Définit un agrandissement ou une réduction de l'élément.
scale3d()
Définit une mise à l'échelle en 3D.
scaleX()
Définit une mise à l'échelle suivant l'axe X.
scaleY()
Définit une mise à l'échelle suivant l'axe Y.
scaleZ()
Définit une mise à l'échelle suivant l'axe Z.
skew()
Définit une inclinaison de l'élément suivant les axes X et/ou Y.
skewX()
Définit une inclinaison de l'élément suivant l'axe X.
skewY()
Définit une inclinaison de l'élément suivant l'axe Y.
translate()
Définit une translation (un déplacement) à un élément.
translate3d()
Définit une translation en 3D suivant un ou plusieurs des axes X,Y et Z.
translateX()
Définit une translation suivant l'axe X (horizontalement).
translateY()
Définit une translation suivant l'axe Y (verticalement).
translateZ()
Définit une translation suivant l'axe Z (perpendiculaire à l'écran).