Conoscere La Proprietà CSS Transform

Pubblicato: di Ian Hernandez
Conoscere La Proprietà CSS Transform thumbnail

Hai scritto l’HTML, il tuo CSS sembra perfetto, e la tua pagina web appare fantastica. Ma manca qualcosa. Vuoi che il tuo sito web sembri vivo, che risalti davvero.

Ecco dove entra in gioco la trasformazione CSS.

Questa potente funzionalità ti consente di spostare, ridimensionare, ruotare e persino inclinare gli elementi della tua pagina. È come aggiungere un po’ di magia, rendendo i tuoi design interattivi e dinamici.

Pensa a siti web dove potresti aver visto immagini che si inclinano quando ci passi sopra con il mouse, un effetto di zoom per vedere qualcosa più da vicino, o un’icona su un pulsante che si muove quando ci passi sopra con il mouse.

Queste sono le trasformazioni CSS che lavorano dietro le quinte.

È una proprietà semplice che può cambiare completamente il modo in cui gli utenti interagiscono con il tuo sito web. In questa guida, impareremo a creare effetti visivi interattivi che faranno distinguere il tuo sito web dalla massa.

Tuffiamoci!

Comprendere Le Basi Della Trasformazione CSS

Prima di immergerti nelle trasformazioni CSS, devi avere una solida base di CSS. Se non conosci ancora il CSS, dai un’occhiata al nostro post sul blog su come imparare il CSS.

Ora, passiamo direttamente alle trasformazioni CSS. Le trasformazioni CSS ti permettono di manipolare visivamente un elemento.

Pensa a ruotare, scalare, inclinare o spostarla. Queste modifiche avvengono in uno spazio 2D o 3D offrendoti molta libertà creativa.

Ecco com’è l’aggiunta di una semplice trasformazione CSS a un elemento:

un esempio di una semplice trasformazione CSS su un elemento

Qui:

  • .element è il selettore per l’elemento che stai trasformando.
  • function(value) indica la trasformazione specifica e quanto ne vuoi.

La proprietà transform supporta molteplici funzioni, che possono essere combinate per creare trasformazioni complesse 2D e 3D.

Esploriamone alcune, che ne dici?

Esplorando le Trasformazioni CSS 2D

Le trasformazioni CSS sono davvero fantastiche —- ti permettono di manipolare come gli elementi vengono visualizzati in una pagina web. Pensalo come spostare oggetti nella vita reale, ma con il codice. Qui, esamineremo alcune delle trasformazioni bidimensionali disponibili in CSS.

Elementi Rotanti

Una delle cose più comuni che puoi fare con le trasformazioni CSS è ruotare oggetti. Supponi di avere un pulsante che dice Cliccami, o qualsiasi pulsante sul tuo sito web. Possiamo usare la funzione rotate in CSS per renderlo un po’ più interessante.

Immagina di avere un pulsante di call-to-action sul tuo sito web: Cliccami. Ecco come puoi usare rotate() per farlo risaltare:

.cta-button {
  transition: transform 0.3s;
}

.cta-button:hover {
  transform: rotate(-10deg);
}

Allora, cosa stiamo facendo qui?

Codice CSS per la rotazione della proprietà sulla sinistra, e i design predefiniti vs. al passaggio del mouse per il pulsante "Cliccami" sulla destra.

Abbiamo specificato che quando qualcuno passa il mouse su un pulsante, questo dovrebbe ruotare di -10 gradi.

La transizione di 0.3s specifica quanto tempo dovrebbe impiegare un’animazione per completarsi. Quindi, invece di passare alla posizione ruotata bruscamente, impiega un po’ di tempo per mostrare all’utente una transizione fluida dallo stato normale a quello ruotato.

Elementi Scalabili

La funzione scale() ti permette di creare un senso di profondità, enfasi e gerarchia visiva all’interno dei tuoi design.

Immaginiamo che tu abbia a disposizione alcune testimonianze di clienti; qualcosa che vorresti mostrare ai visitatori del tuo sito web.

Ora, non vogliamo solo che siano posizionati piattamente sulla pagina. Con un po’ di trasformazione CSS, puoi farli risaltare quando il cursore di un utente si sofferma su di essi.

.testimonial-card {
  transition: transform 0.3s;
}

.testimonial-card:hover {
  transform: scale(1.1);
}
Proprietà di scala della trasformazione CSS

Cosa stiamo facendo qui?

  • Per prima cosa, stiamo prendendo di mira ogni contenitore di testimonianze. Abbiamo presupposto la classe come testimonial-card.
  • La proprietà transition ammorbidisce l’effetto di scala nel corso di 0,3 secondi, così da renderlo naturale. 
  • Quando un utente passa il mouse sopra una card, essa si ingrandisce sottilmente di un po’ (1,05 volte la sua dimensione originale).

Questa piccola modifica cattura l’attenzione dell’utente e fa risaltare quella particolare testimonianza. È una differenza sottile nella pagina, ma decisamente evidente.

Ricevi contenuti direttamente nella tua casella di posta

Iscriviti ora per ricevere tutti gli ultimi aggiornamenti direttamente nella tua casella di posta.

Elementi Inclinati

Lo skewing è una trasformazione che ti permette di inclinare gli elementi lungo l’asse X o Y, creando una sensazione di movimento e dinamismo.

In particolare, la trasformazione skew() offre un modo per introdurre un senso di movimento e dinamismo agli elementi del tuo sito web.

Considera una sezione dedicata alle testimonianze dei clienti. Ecco come puoi usare skew() per farle risaltare:

.testimonial {
  transition: transform 0.3s;
}

.testimonial:hover {
  transform: skewX(-10deg);
}

Quando un utente passa il mouse su una testimonianza, questa si inclinerà sottilmente lungo l’asse X di -10 gradi.

Questa leggera inclinazione, ottenuta attraverso la funzione skewX() all’interno della proprietà di trasformazione CSS, aggiunge interesse visivo senza essere eccessivamente distraente.

Proprietà di trasformazione inclinazione di CSS

Noterai anche che aggiungiamo costantemente la proprietà di transizione specificando il tempo come 0.3s per completare un’animazione.

Traduzione O Spostamento Di Elementi

La traduzione nel web design significa spostare elementi in una pagina.

Pensa a questo modo: stai posizionando elementi su una griglia e puoi spostarli lungo l’asse X, Y o anche Z senza cambiare o spostare nient’altro.

Immagina di avere una barra di navigazione sul tuo sito web. Vuoi che reagisca in modo sottile quando il cursore di un visitatore passa sopra gli elementi del menu.

Con translate( ), puoi farlo accadere. Vediamo del codice per capire meglio:

.menu-item {
  transition: transform 0.2s;
}

.menu-item:hover {
  transform: translateX(10px);
}

Quello che abbiamo fatto qui è applicare un semplice effetto di transizione. Ora, quando passi il cursore su un .menu-item, si sposta fluidamente di 10 pixel verso destra. Fantastico, vero?

Codice CSS per la traduzione della proprietà a sinistra, e i design predefiniti vs. al passaggio del mouse per i pulsanti a destra.

La bellezza delle traduzioni è che non si limitano solo agli effetti al passaggio del mouse. Puoi utilizzarle per creare animazioni d’ingresso e di uscita per gli elementi del tuo sito web, spostare oggetti pertinenti a pagine specifiche quando ti trovi su quella pagina e molto altro.

Fondamenti Delle Trasformazioni CSS 3D

Ora conosciamo il movimento su, giù, sinistra e destra — questo è il nostro movimento tipico in 2D.

Tuttavia, CSS ti permette di entrare nel mondo delle trasformazioni 3D, dove possiamo manipolare gli elementi lungo l’asse z.

Allora, quali trasformazioni 3D offre CSS?

  • Prima, le funzioni di rotazione: rotateX(angle), rotateY(angle), e rotateZ(angle). Per mettere le cose in prospettiva, rotateZ è la nostra ruota che gira, rotateY è una pagina che si volta, e rotateX è un lancio di moneta. Ognuna controlla la rotazione attorno ai rispettivi assi.
  • translateZ(z) trasla, o muove, un elemento lungo l’asse z. Un valore positivo lo avvicina, mentre un valore negativo lo allontana. Pensaci come regolare lo zoom di una fotocamera, mettendo a fuoco diverse profondità.
  • La scaleZ(z) function ti permette di scalare un elemento lungo l’asse z. È come allungare o comprimere un elemento lungo una singola linea. Valori maggiori di 1 lo fanno apparire più vicino a te, mentre valori tra 0 e 1 lo fanno retrocedere sullo sfondo.

Per creare un effetto di trasformazione 3D, devi impostare una prospettiva sull’elemento genitore. La proprietà prospettiva determina la distanza tra lo spettatore e il piano z=0, influenzando come vengono percepiti i cambiamenti 3D.

Aggiungiamo qualche stile in più, come larghezza, altezza e colore di sfondo per rendere la transizione più chiara quando la guardi dal tuo schermo:

.parent {
  perspective: 500px;
  width: 200px;
  height: 200px;
  margin: 100px auto;
}

.child {
  width: 200px;
  height: 200px;
  background-color: blue;
  transform: rotateY(45deg);
  transition: transform 0.5s;
}

.child:hover {
  transform: rotateY(0deg);
}

Ecco come sarebbe il HTML:

<body>
  <div class="parent">
    <div class="child"></div>
  </div>
</body>
Codice CSS per trasformazioni 3D a sinistra, e i design predefiniti vs. al passaggio del mouse per i pulsanti a destra.

Abbiamo due div, genitore e figlio. Il genitore, il nostro palcoscenico, ha la sua prospettiva impostata a 500 pixel. Il figlio, un quadrato rosso, è inizialmente ruotato di 45 gradi lungo l’asse Y utilizzando rotateY(45deg).

Al passaggio del mouse, utilizziamo transform: rotateY(0deg) per resettare la rotazione, permettendo un ritorno fluido alla posizione originale.

Controllare L’Origine Della Trasformazione CSS

Di default, le trasformazioni CSS avvengono attorno al centro di un elemento. Tuttavia, puoi cambiare questo punto di origine utilizzando la proprietà transform-origin. Questa proprietà ti permette di specificare le coordinate X, Y e Z del punto attorno al quale dovrebbe avvenire la trasformazione.

La sintassi per la proprietà transform-origin è la seguente:

.element { 
transform-origin: x-axis y-axis z-axis; 
}

I valori dell’asse-x e dell’asse-y possono essere specificati utilizzando unità di misura (ad esempio, pixel), percentuali o parole chiave (sinistra, centro, destra, alto o basso). Il valore dell’asse-z è rilevante solo per le trasformazioni 3D ed è specificato utilizzando unità di misura.

Ecco un esempio che dimostra come cambiare l’transform-origin influisce su una rotazione:

.box { 
transform: rotate(45deg); 
transform-origin: top left; 
}

In questo caso, l’elemento ruoterà di 45 gradi intorno al suo angolo in alto a sinistra invece che intorno al suo centro.

Codice CSS ruota la proprietà transform-origin a sinistra, e i disegni prima vs. dopo per l'elemento a destra.

La proprietà transform-origin ti offre un controllo preciso su come vengono applicate le trasformazioni, consentendoti di creare effetti più precisi e visivamente accattivanti.

Creazione Di Effetti Di Trasformazione CSS Complessi Combinandoli

Uno degli aspetti più potenti della proprietà transform di CSS è la capacità di combinare più trasformazioni per creare effetti complessi e visivamente sorprendenti. Concatenando diverse funzioni di trasformazione, puoi liberare la tua creatività e realizzare design unici e affascinanti.

Diciamo che hai una scheda prodotto sul tuo sito e-commerce. Quando un utente passa il cursore sopra la scheda, vuoi che si ingrandisca, ruoti leggermente e si sollevi dalla pagina con un effetto ombra:

.product-card {
  transition: transform 0.3s, box-shadow 0.3s;
}

.product-card:hover {
  transform: scale(1.05) rotate(5deg);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
Codice per combinare gli effetti di trasformazione CSS sulla sinistra, e i design predefiniti vs. al passaggio del mouse per la scheda del prodotto sulla destra.

Quando un utente passa il mouse sulla scheda del prodotto, questa si ingrandisce dolcemente fino a 1,05 volte la sua dimensione originale, ruota di 5 gradi e ottiene un’ombra esterna che crea un effetto sollevato. La combinazione di ingrandimento, rotazione e ombra crea un’interazione dinamica e coinvolgente.

Conclusione E Apprendimento Continuo

Hai dedicato tempo all’apprendimento delle trasformazioni CSS: rotazione, ridimensionamento, inclinazione e posizionamento, che ti permettono di creare alcuni effetti visivi sofisticati. Questa abilità è davvero preziosa per costruire siti web che funzionino bene su schermi diversi e per rendere i tuoi siti più visivamente attraenti.

Tuttavia, c’è ancora di più che puoi fare con questo. Se sei interessato ad andare oltre, potresti esplorare alcune di queste aree:

  • Utilizzare CSS per realizzare transizioni e animazioni fluide.
  • Esplorare le trasformazioni 3D per aggiungere profondità ai tuoi progetti.
  • Imparare a animare immagini SVG per effetti più complessi.
  • Trovare modi creativi per combinare trasformazioni con altre proprietà CSS.
  • Impara Tailwind CSS e Bootstrap CSS per rendere bella l’intera pagina.

Il modo migliore per migliorare è continuare a lavorarci e provare cose nuove. È così che scopri cosa è possibile e sviluppi il tuo stile unico.

Quando inizi a giocare con CSS, avrai probabilmente bisogno di un hosting ad alta velocità che non rallenti il tuo sito. Scopri i piani di hosting condiviso di DreamHost super veloci per tutte le esigenze del tuo sito web!

Ricevi contenuti direttamente nella tua casella di posta

Iscriviti ora per ricevere tutti gli ultimi aggiornamenti direttamente nella tua casella di posta.