
Le trasformazioni CSS ti consentono di spostare, ruotare, ridimensionare e inclinare gli elementi.
In questo articolo impareremo a conoscere la seguente proprietà CSS:
transformCon 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 |