W3docs

Proprietà CSS transition-property

Come usare la proprietà longhand CSS transition-property per specificare il nome di una proprietà per l'effetto di transizione. Valori ed esempi.

La proprietà CSS transition-property definisce quali proprietà di un elemento devono essere animate al cambiamento del loro valore. Accetta un elenco separato da virgole di nomi di proprietà, oppure la parola chiave all per animare ogni proprietà animabile dell'elemento.

Da sola, transition-property non produce alcun effetto visibile — si limita a indicare i target. È necessaria anche una transition-duration maggiore di 0s affinché il cambiamento sia graduale anziché istantaneo. Nella maggior parte del codice si impostano tutti e quattro i valori in una volta sola con la shorthand transition; transition-property è la forma longhand da usare quando si vuole controllare i tempi di ciascuna proprietà separatamente.

transition-property è una delle proprietà CSS3.

Cosa può e cosa non può essere animato

Una proprietà è animabile solo quando CSS sa come calcolare i valori intermedi tra un valore iniziale e uno finale. Come regola generale:

  • Animabile: qualsiasi elemento con un valore numerico o di colore — width, height, opacity, color, background-color, transform, left/top, font-size, letter-spacing, box-shadow, e così via.
  • Non animabile: valori di parole chiave discrete che non hanno un punto intermedio significativo — display, position, float, font-family. La modifica di queste avviene in modo istantaneo anche se vengono elencate in transition-property.
Attenzione

Non tutte le proprietà CSS possono essere animate. Elencare una proprietà non animabile (come display) non produce alcun effetto — il cambiamento avviene immediatamente.

Informazione

I prefissi vendor (ad esempio, -webkit-, -moz-, -o-) non sono più necessari per le transizioni CSS nei browser moderni.

Valore inizialeall
Si applica aTutti gli elementi, pseudo-elementi ::before e ::after.
EreditatoNo.
AnimabileNo (controlla quali proprietà vengono animate, ma non è animabile esso stesso).
VersioneCSS3
Sintassi DOMobject.style.transitionProperty = "height";

Nota: Nel CSS moderno è consigliato usare la proprietà shorthand transition.

Sintassi

Valori di CSS transition-property

transition-property: none | all | property | initial | inherit;

Esempio della proprietà transition-property:

Esempio di codice CSS transition-property

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        width: 100px;
        height: 100px;
        background: #666;
        transition-duration: 1s;
        transition-property: height;
      }
      div:hover {
        height: 200px;
      }
    </style>
  </head>
  <body>
    <h2>Transition-property property example</h2>
    <p>Hover over the element to see the effect.</p>
    <div></div>
  </body>
</html>

Qui solo height viene animato. Poiché width non è elencato, cambierebbe istantaneamente — ed è proprio per questo che nominare le proprietà è importante.

Esempio della proprietà transition-property con larghezza e altezza animate:

Altro esempio di codice CSS transition-property

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        width: 100px;
        height: 100px;
        background: #666;
        transition-duration: 1s;
        transition-property: width, height;
      }
      div:hover {
        width: 200px;
        height: 200px;
      }
    </style>
  </head>
  <body>
    <h2>Transition-property property example</h2>
    <p>Hover over the element to see the effect.</p>
    <div></div>
  </body>
</html>

I due nomi di proprietà sono separati da una virgola. Si potrebbe anche scrivere transition-property: all per animare entrambi contemporaneamente, ma elencarli esplicitamente evita di animare accidentalmente proprietà non desiderate.

Esempio della proprietà transition-property con un colore di sfondo animato:

Esempio di transition-property con colore di sfondo animato:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      div {
        width: 100px;
        height: 100px;
        background-color: #666666;
        transition-duration: 1s;
        transition-property: background-color;
      }
      div:hover {
        background-color: #8ebf42;
      }
    </style>
  </head>
  <body>
    <h2>Transition-property property example</h2>
    <p>Hover over the element to see the effect.</p>
    <div></div>
  </body>
</html>

Esempio della proprietà transition-property con colore di sfondo e transizione dell'offset di posizione sinistra:

Esempio di transition-property con colore di sfondo e transizione dell'offset di posizione sinistra

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .element {
        padding: 1em;
        width: 30px;
        height: 30px;
        left: 0;
        cursor: pointer;
        background-color: #8ebf42;
        position: relative;
        transition-property: background-color, left;
        transition-duration: 1s, 1s;
        transition-timing-function: ease-out, cubic-bezier(.82, .1, .14, 1);
      }
      .element:hover {
        left: 250px;
        background-color: purple;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <p>Hover over the box to see the element's background color and left position offset transition.</p>
      <div class="element"></div>
    </div>
  </body>
</html>

Si noti come l'elenco separato da virgole si allinei per posizione: la prima proprietà (background-color) usa la prima durata e la prima funzione di temporizzazione, mentre la seconda proprietà (left) usa la seconda di ciascuna. Questo abbinamento posizionale consente a ogni proprietà di animarsi con la propria transition-duration e transition-timing-function — qualcosa che la parola chiave all non può fare.

Esempio della proprietà transition-property con font animato:

Esempio di CSS transition-property con le proprietà letter-spacing, font-size e line-height

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      span {
        display: inline-block;
        font-family: sans-serif;
        transition-duration: 0.6s;
        letter-spacing: 1px;
        font-size: 20px;
        line-height: 28px;
        color: #777777;
        transition-property: letter-spacing, font-size, line-height;
      }
      span:hover {
        color: #0f9881;
        letter-spacing: 6px;
        font-size: 26px;
        line-height: 34px;
      }
    </style>
  </head>
  <body>
    <h2>Transition-property property example</h2>
    <span>Hover over the text to see the effect</span>
  </body>
</html>

Valori

ValoreDescrizione
noneNon verrà applicato alcun effetto di transizione.
allL'effetto di transizione verrà applicato a tutte le proprietà.
propertySpecifica un elenco separato da virgole di nomi di proprietà CSS per l'effetto di transizione.
initialImposta questa proprietà al suo valore predefinito.
inheritEredita questa proprietà dall'elemento genitore.

Proprietà correlate

transition-property è una delle quattro forme longhand che compongono una transizione. Vengono quasi sempre usate insieme:

Esercitazione

Pratica
Quale affermazione è corretta riguardo a transition-property?
Quale affermazione è corretta riguardo a transition-property?
Was this page helpful?