Ricerca…


Sintassi

  • Ruota Trasforma
  • trasforma: ruota (<angolo>)
  • Traduci Trasforma
  • transform: translate (<lunghezza o percentuale> [, lunghezza o percentuale>]?)
  • transform: translateX (<lunghezza o percentuale>)
  • transform: translateY (<lunghezza o percentuale>)
  • Traslazione obliqua
  • transform: skew (<angle> [, <angle>]?)
  • trasforma: skewX (<angle>)
  • trasformare: skewY (<angle>)
  • Trasforma la scala
  • transform: scale (<fattore-scala> [, <fattore-scala>]?)
  • transform: scaleX (<fattore di scala>)
  • transform: scaleY (<fattore di scala>)
  • Matrix Transform
  • transform: matrix (<numero> [, <numero>] {5,5})

Parametri

Funzione / Parametro Dettagli
rotate(x) Definisce una trasformazione che sposta l'elemento attorno a un punto fisso sull'asse Z.
translate(x,y) Sposta la posizione dell'elemento sull'asse X e Y.
translateX(x) Sposta la posizione dell'elemento sull'asse X.
translateY(y) Sposta la posizione dell'elemento sull'asse Y.
scale(x,y) Modifica la dimensione dell'elemento sull'asse X e Y.
scaleX(x) Modifica la dimensione dell'elemento sull'asse X.
scaleY(y) Modifica la dimensione dell'elemento sull'asse Y.
skew(x,y) Mappatura a shear, o transvection, distorcendo ogni punto di un elemento di un certo angolo in ogni direzione
skewX(x) Mappatura di shear orizzontale che distorce ciascun punto di un elemento di un certo angolo nella direzione orizzontale
skewY(y) Mappatura di taglio verticale che distorce ciascun punto di un elemento di un certo angolo nella direzione verticale
matrix() Definisce una trasformazione 2D sotto forma di una matrice di trasformazione.
angolo L'angolo con cui l'elemento deve essere ruotato o inclinato (a seconda della funzione con cui viene utilizzato). L'angolo può essere fornito in gradi ( deg ), gradienti ( grad ), radianti ( rad ) o giri ( turn ). Nella funzione skew() , il secondo angolo è opzionale. Se non fornito, non ci saranno (0) disallineamenti nell'asse Y.
lunghezza-o-percentuale La distanza espressa come lunghezza o percentuale in base alla quale l'elemento deve essere tradotto. Nella funzione translate() , la seconda lunghezza o percentuale è facoltativa. Se non fornito, non ci sarebbe nessuna (0) traduzione nell'asse Y.
fattore di scala Un numero che definisce quante volte l'elemento deve essere ridimensionato nell'asse specificato. Nella funzione scale() , il secondo fattore di scala è facoltativo. Se non viene fornito, verrà applicato anche il primo fattore di scala per l'asse Y.

Osservazioni

Sistema 2D Coordiante

Le trasformazioni sono realizzate secondo un sistema coordiante 2D X / Y. L'asse X va da destra a sinistra e l'asse Y va verso il basso come mostrato nell'immagine seguente:

Sistema di coordinate CSS 2D

Quindi un translateY() positivo translateY() va verso il basso e un translateX() positivo translateX() va bene.

Supporto per browser e prefissi

  • IE supporta questa proprietà da IE9 con il prefisso -ms- . Versioni precedenti e Edge non hanno bisogno del prefisso
  • Firefox lo supporta dalla versione 3.5 e ha bisogno del prefisso -moz- fino alla versione 15
  • Chrome dalla versione 4 e fino alla versione 34 richiede il prefisso -webkit-
  • Safari ha bisogno del prefisso -webkit- fino alla versione 8
  • Opera ha bisogno del prefisso -o- per la versione 11.5 e del prefisso -webkit- dalla versione 15 alla 22
  • Android ha bisogno del prefisso -webkit- dalla versione 2.1 alla 4.4.4

Esempio di trasformazione prefissata:

-webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
        transform: rotate(45deg);

Ruotare

HTML

<div class="rotate"></div>

CSS

.rotate {
    width: 100px;
    height: 100px;
    background: teal;
    transform: rotate(45deg);
}

Questo esempio ruoterà il div di 45 gradi in senso orario. Il centro di rotazione si trova al centro del div, 50% da sinistra e 50% dall'alto. Puoi cambiare il centro di rotazione impostando la proprietà transform-origin .

transform-origin: 100% 50%;

L'esempio sopra imposterà il centro di rotazione al centro del lato destro.

Scala

HTML

<div class="scale"></div>

CSS

.scale {
    width: 100px;
    height: 100px;
    background: teal;
    transform: scale(0.5, 1.3);
}

Questo esempio ridimensiona il div a 100px * 0.5 = 50px sull'asse X ea 100px * 1.3 = 130px sull'asse Y.

Il centro della trasformazione si trova al centro del div, 50% da sinistra e 50% dall'alto.

Tradurre

HTML

<div class="translate"></div>

CSS

.translate {
    width: 100px;
    height: 100px;
    background: teal;
    transform: translate(200px, 50%);
}

Questo esempio sposterà il div di 200px sull'asse X e di 100px * 50% = 50px sull'asse Y.

Puoi anche specificare le traduzioni su un singolo asse.

Sull'asse X:

.translate {
    transform: translateX(200px);
}

Sull'asse Y:

.translate {
    transform: translateY(50%);
}

Storto

HTML

<div class="skew"></div>

CSS

.skew {
    width: 100px;
    height: 100px;
    background: teal;
    transform: skew(20deg, -30deg);
}

Questo esempio inclina il div di 20 gradi sull'asse X e di -30 gradi sull'asse Y.
Il centro della trasformazione si trova al centro del div, 50% da sinistra e 50% dall'alto.

Vedi il risultato qui .

Trasformazioni multiple

Più trasformazioni possono essere applicate a un elemento in una proprietà come questa:

transform: rotate(15deg) translateX(200px);

Questo ruoterà l'elemento di 15 gradi in senso orario e poi lo tradurrà a 200px a destra.

Nelle trasformazioni concatenate, il sistema di coordinate si sposta con l'elemento . Ciò significa che la traduzione non sarà orizzontale ma su un asse ruoterà di 15 gradi in senso orario come mostrato nell'immagine seguente:

Trasformazioni multiple ruotano poi traducono

Cambiando l'ordine delle trasformazioni cambierà l'output. Il primo esempio sarà diverso da

transform: translateX(200px) rotate(15deg);
<div class="transform"></div>
.transform {
  transform: rotate(15deg) translateX(200px);
}

Come mostrato in questa immagine:

Trasformazioni multiple traducono poi ruotano

Trasforma l'origine

Le trasformazioni vengono eseguite rispetto a un punto definito dalla proprietà transform-origin .

La proprietà accetta 2 valori: transform-origin: XY;

Nell'esempio seguente la prima div ( .tl ) ruota intorno all'angolo in alto a sinistra con transform-origin: 0 0; e il secondo ( .tr ) viene trasformato attorno al suo angolo in alto a destra con transform-origin: 100% 0 . La rotazione viene applicata al passaggio del mouse :

HTML:

<div class="transform originl"></div>
<div class="transform origin2"></div>

CSS:

.transform {
    display: inline-block;
    width: 200px;
    height: 100px;
    background: teal;
    transition: transform 1s;
}

.origin1 {
    transform-origin: 0 0;
}

.origin2 {
    transform-origin: 100% 0;
}

.transform:hover {
    transform: rotate(30deg);
}

Il valore predefinito per la proprietà transform-origin è 50% 50% che rappresenta il centro dell'elemento.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow