transform

Permet d'appliquer un effet (rotation/translation/scaling/3D/skew/perspective) à un élément.
Possible d'appliquer plusieurs effets à un même élément.
VIP : l'élément transformé ne modifie pas son espace utilisé pour correspondre à la transformation, mais continu au contraire d'occuper son espace original. La transformation n'est qu'un effet visuel.

transformations disponibles : none

matrix(n,n,n,n,n,n) : ?????

matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) : ?????

translate(x,y)

translate3d(x,y,z)
translateX(x)
translateY(y)
translateZ(z)

scale(x,y)

scale3d(x,y,z)
scaleX(x)
scaleY(y)
scaleZ(z)

skew(x-angle,y-angle)
skewY(angle)
skewX(angle)

rotate(angle)

rotate3d(x,y,z,angle)
rotateX(angle)
rotateY(angle)
rotateZ(angle)

transform : translate(25px,25px) ;
transform : scale(0.9, 2.5) ;
transform : skew(0deg, 45deg) ;
transform : rotate( -45deg) ;
transform : rotate( -45deg),
scale(0.9, 2.5),
skew(0deg, 45deg),
translate(25px,25px) ;

plusieurs effets sur un même élément

transform-origin :
[x-axis y-axis z-axis]
Permet d'indiquer la position du point utilisée pour les rotations et skew (et effets 3d?)

transform : rotate( -45deg) ;
transform-origin : 0% 0% ;

rotation à partir du coin haut gauche
transform : rotate( -45deg) ;
transform-origin : 50% 50% ;

rotation au centre du bloc
transform : rotate( -45deg) ;
transform-origin : 100% 100% ;

rotation à partir du bas droit
transform : rotate( -45deg) ;
transform-origin : 50px 50px ;

point de rotation déterminé en pixels

3D
perspective
Plus cette valeur est basse, plus on est proche du sujet (donc déformation plus importantes.)
VIP : pour que les effets 3D fonctionnent, besoin d'un parent qui sert à indiquer la perspective pour ses childs.

perspective-origin[x-axis y-axis]
Indique le point utilisé pour la perspective.

transform-style[flat | preserve-3d]
Indique si un child doit préserver la déformation 3D ou non.

backface-visibility[visible | hidden]
Indique si, après transformation 3D, la face arrière doit être visible lorsque l'objet est inversé.

parent {
perspective : 1830px ;
perspective-origin : -10% 100% ;
transform-style : preserve-3d ;
}
child {
backface-visibility : visible ;
transform : rotateY(20deg) ;
}