Le trasformazioni CSS ti consentono di spostare, ruotare, ridimensionare e inclinare gli elementi.
In questo articolo impareremo a conoscere la seguente proprietà CSS:
transform
Con la proprietà di trasformazione CSS puoi utilizzare i seguenti metodi di trasformazione 2D:
translate()
rotate()
scaleX()
scaleY()
scale()
skewX()
skewY()
skew()
matrix()
Il metodo translate()
sposta un elemento dalla sua posizione corrente (secondo i parametri forniti per l'asse X e l'asse Y).
L'esempio seguente sposta l'elemento <div> di 50 pixel a destra e di 100 pixel verso il basso rispetto alla posizione corrente:
div {
transform: translate(50px, 100px);
}
Il metodo rotate()
ruota un elemento in senso orario o antiorario in base ad un dato grado.
L'esempio seguente ruota l'elemento <div> in senso orario di 20 gradi:
div {
transform: rotate(20deg);
}
L'utilizzo di valori negativi ruoterà l'elemento in senso antiorario.
L'esempio seguente ruota l'elemento <div> in senso antiorario di 20 gradi:
div {
transform: rotate(-20deg);
}
Il metodo scale()
aumenta o diminuisce la dimensione di un elemento (secondo i parametri forniti per larghezza e altezza).
L'esempio seguente aumenta l'elemento <div> fino a due volte la sua larghezza originale e tre volte la sua altezza originale:
div {
transform: scale(2, 3);
}
L'esempio seguente riduce l'elemento <div> alla metà della sua larghezza e altezza originali:
div {
transform: scale(0.5, 0.5);
}
Il metodo scaleX()
aumenta o diminuisce la larghezza di un elemento.
L'esempio seguente aumenta l'elemento <div> fino a due volte la sua larghezza originale:
div {
transform: scaleX(2);
}
L'esempio seguente riduce l'elemento <div> alla metà della sua larghezza originale:
div {
transform: scaleX(0.5);
}
Il metodo scaleY()
aumenta o diminuisce l'altezza di un elemento.
L'esempio seguente aumenta l'elemento <div> fino a tre volte la sua altezza originale:
div {
transform: scaleY(3);
}
L'esempio seguente riduce l'elemento <div> alla metà della sua altezza originale:
div {
transform: scaleY(0.5);
}
Il metodo skewX()
inclina un elemento lungo l'asse X dell'angolo specificato.
L'esempio seguente inclina l'elemento <div> di 20 gradi lungo l'asse X:
div {
transform: skewX(20deg);
}
Il metodo skewY()
inclina un elemento lungo l'asse Y dell'angolo specificato.
L'esempio seguente inclina l'elemento <div> di 20 gradi lungo l'asse Y:
div {
transform: skewY(20deg);
}
Il metodo skew()
inclina un elemento lungo gli assi X e Y degli angoli specificati.
L'esempio seguente inclina l'elemento <div> di 20 gradi lungo l'asse X e di 10 gradi lungo l'asse Y:
div {
transform: skew(20deg, 10deg);
}
Se il secondo parametro non è specificato, ha valore zero. Pertanto, l'esempio seguente inclina l'elemento <div> di 20 gradi lungo l'asse X:
div {
transform: skew(20deg);
}
Il metodo matrix()
combina tutti i metodi di trasformazione 2D in uno solo.
Il metodo matrice() accetta sei parametri, contenenti funzioni matematiche, che consentono di ruotare, ridimensionare, spostare (traslare) e inclinare gli elementi.
I parametri sono i seguenti: Matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY())
div {
transform: matrix(1, -0.3, 0, 1, 0, 0);
}
Proprietà | Descrizione |
---|---|
transform | Applica una trasformazione 2D o 3D a un elemento |
transform-origin | Consente di modificare la posizione sugli elementi trasformati |
Funzione | Descrizione |
---|---|
matrix(n,n,n,n,n,n) | Si definisce una trasformazione 2D utilizzando una matrice di sei valori |
translate(x,y) | Definisce una traslazione 2D, spostando l'elemento lungo gli assi X e Y |
translateX(n) | Definisce una traslazione 2D, spostando l'elemento lungo l'asse X |
translateY(n) | Definisce una traslazione 2D, spostando l'elemento lungo l'asse Y |
scale(x,y) | Definisce una trasformazione in scala 2D, modificando la larghezza e l'altezza degli elementi |
scaleX(n) | Definisce una trasformazione della scala 2D, modificando la larghezza dell'elemento |
scaleY(n) | Definisce una trasformazione in scala 2D, modificando l'altezza dell'elemento |
rotate(angle) | Definisce una rotazione 2D, l'angolo è specificato nel parametro |
skew(x-angle,y-angle) | Definisce una trasformazione di inclinazione 2D lungo gli assi X e Y |
skewX(angle) | Definisce una trasformazione di inclinazione 2D lungo l'asse X |
skewY(angle) | Defines a 2D skew transformation along the Y-axis |