W3docs

Proprietà CSS3

Riferimento raggruppato di tutte le principali proprietà CSS3, organizzato per modulo (Animation, Flexbox, Grid, Transform e altro) con link ai capitoli completi.

CSS3 è l'ultima evoluzione del linguaggio Cascading Style Sheets. Anziché essere un'unica versione monolitica, CSS3 è suddiviso in moduli indipendenti — Animations, Flexbox, Grid Layout, Backgrounds and Borders, Transforms, Filters e altri — che i browser possono implementare e rilasciare separatamente. Ogni modulo ha aggiunto nuove proprietà all'insieme originale di CSS2, offrendo angoli arrotondati, gradienti, ombre, animazioni, layout flessibili e basati su griglia, e filtri visivi senza bisogno di immagini o JavaScript.

Questa pagina è un indice di riferimento rapido delle proprietà introdotte o significativamente estese in CSS3, organizzate per modulo di appartenenza. Ogni riga rimanda a un capitolo completo con sintassi, valori ed esempi interattivi.

Se sei alle prime armi con il linguaggio, inizia dai capitoli Introduzione a CSS e Sintassi CSS prima di approfondire le singole proprietà.

Come Usare Questo Riferimento

  • Trova una proprietà per gruppo. I titoli seguenti rispecchiano i moduli CSS3: se hai bisogno di una proprietà di layout, cerca in Flexible Box Layout o Grid Layout; per il movimento, guarda sotto Animation o Transitions; per gli effetti visivi, consulta Filter Effects o Transform Properties.
  • Clicca per i dettagli. Ogni proprietà rimanda al proprio capitolo con l'elenco completo dei valori, i valori predefiniti e demo eseguibili.
  • Attenzione al supporto dei browser. I moduli CSS3 hanno raggiunto il supporto stabile e senza prefissi in momenti diversi. La maggior parte delle proprietà seguenti è sicura in tutti i browser moderni, ma verifica sempre il supporto per le aggiunte più recenti (ad esempio, alcune proprietà column-*) prima di utilizzarle in produzione.

Una Nota sui Prefissi Vendor

Mentre i moduli CSS3 erano ancora sperimentali, i browser rilasciavano le proprietà con prefissi vendor come -webkit-, -moz-, -ms- e -o-. Potresti ancora incontrarli in basi di codice più vecchie:

/* Older code — prefixes were needed during the experimental phase */
.box {
  -webkit-transform: rotate(15deg);
  -moz-transform:    rotate(15deg);
  transform:         rotate(15deg); /* Always list the unprefixed property last */
}

Per le proprietà elencate di seguito oggi quasi mai si hanno bisogno di prefissi — scrivi il nome standard senza prefisso. Usa i prefissi solo quando devi supportare un browser legacy, e indica sempre la proprietà standard per ultima in modo che sovrascriva le altre.

CSS3 vs. CSS2 — Cosa è Cambiato?

CSS2 copriva il box model fondamentale, i colori, i font e il posizionamento. CSS3 ha costruito su questa base aggiungendo le seguenti funzionalità, prima assenti o molto limitate:

  • Angoli arrotondati e immagini di bordoborder-radius, border-image
  • Ombrebox-shadow, text-shadow
  • Gradienti e sfondi multiplibackground-size, background-clip
  • Layout flessibili e a griglia — Flexbox (flex, align-items, …), Grid (grid, grid-template-columns, …)
  • Trasformazioni 2D e 3Dtransform, perspective
  • Transizioni fluide di statotransition
  • Animazioni con fotogrammi chiaveanimation, @keyframes
  • Testo su più colonnecolumn-count, column-gap
  • Filtri visivifilter (blur, brightness, contrast, …)
  • Trasparenza personalizzataopacity

Elenco delle Proprietà CSS3

Proprietà di Animazione

Le animazioni con fotogrammi chiave consentono di descrivere come un elemento transita attraverso una serie di istantanee di stile. La regola @keyframes definisce le istantanee; le proprietà animation-* le collegano e le controllano su un elemento.

/* Minimal animation example */
@keyframes slide-in {
  from { transform: translateX(-100%); opacity: 0; }
  to   { transform: translateX(0);     opacity: 1; }
}

.banner {
  animation: slide-in 0.4s ease-out both;
}
ProprietàDescrizione
animationProprietà abbreviata che imposta tutte le sotto-proprietà dell'animazione in una sola dichiarazione.
animation-delaySpecifica quando inizia un'animazione (positivo = ritardo; negativo = avvio a metà ciclo).
animation-directionControlla la direzione di riproduzione: normal, reverse, alternate o alternate-reverse.
animation-durationDefinisce quanto dura un ciclo di animazione (ad es., 0.4s, 500ms).
animation-fill-modeImposta lo stile dell'elemento prima che l'animazione inizi e/o dopo che termina (forwards, backwards, both).
animation-iteration-countQuante volte viene riprodotta l'animazione — un numero o infinite.
animation-nameNomina la regola @keyframes da applicare.
animation-play-stateMette in pausa (paused) o riprende (running) un'animazione — utile per i pulsanti di attivazione/disattivazione.
animation-timing-functionCurva di andamento per ogni ciclo: ease, linear, ease-in-out, cubic-bezier(…), steps(…).
@keyframes (at-rule)Definisce le istantanee di stile intermedie (fotogrammi chiave) attraverso cui avanza un'animazione.

Proprietà di Sfondo

CSS3 ha esteso gli sfondi per supportare il dimensionamento, le regioni di ritaglio e immagini multiple sovrapposte su un singolo elemento.

/* Responsive hero with background-size */
.hero {
  background-image: url('/img/hero.jpg');
  background-size: cover;       /* fills the box; crop as needed */
  background-position: center;
  background-clip: border-box;  /* default; image reaches border edge */
}
ProprietàDescrizione
background-clipControlla fino a dove si estende lo sfondo — border-box, padding-box o content-box.
background-originImposta l'origine per background-positionborder-box, padding-box o content-box.
background-sizeImposta la dimensione dell'immagine di sfondo: una lunghezza, auto, cover (riempie, può ritagliare) o contain (si adatta completamente).

Proprietà di Bordo

CSS3 ha aggiunto angoli arrotondati e bordi basati su immagini — funzionalità che in precedenza richiedevano soluzioni basate su immagini.

/* Rounded button */
.btn {
  border-radius: 6px;
  border: 2px solid steelblue;
}

/* Pill shape */
.badge {
  border-radius: 999px;
}
ProprietàDescrizione
border-bottom-left-radiusArrotonda l'angolo in basso a sinistra. Accetta un raggio (cerchio) o due (ellisse).
border-bottom-right-radiusArrotonda l'angolo in basso a destra.
border-imageUsa un'immagine come bordo, suddivisa in nove regioni.
border-image-outsetDi quanto l'immagine del bordo si estende oltre il box del bordo.
border-image-repeatSe i bordi laterali dell'immagine del bordo sono stretched, repeated o rounded.
border-image-sliceDivide l'immagine sorgente in nove sezioni (quattro angoli, quattro bordi, centro).
border-image-sourceL'URL dell'immagine o il gradiente usato come bordo.
border-image-widthLarghezza delle sezioni dell'immagine del bordo (può differire da border-width in CSS).
border-radiusProprietà abbreviata per tutti e quattro i raggi degli angoli.
border-top-left-radiusArrotonda l'angolo in alto a sinistra.
border-top-right-radiusArrotonda l'angolo in alto a destra.

Colore e Trasparenza

ProprietàDescrizione
opacityImposta la trasparenza di un intero elemento (e dei suoi figli) da 0 (invisibile) a 1 (completamente opaco). Per la trasparenza per canale, usa rgba() o hsla() nei valori color / background-color.

Effetti Filtro

La proprietà filter applica effetti grafici (sfocatura, luminosità, contrasto, ombra esterna, ecc.) direttamente in CSS — senza bisogno di un editor di immagini.

.card:hover img {
  filter: brightness(1.1) saturate(1.2);
  transition: filter 0.2s ease;
}

.modal-backdrop {
  filter: blur(4px);
}
ProprietàDescrizione
filterApplica una o più funzioni filtro: blur(), brightness(), contrast(), drop-shadow(), grayscale(), hue-rotate(), invert(), opacity(), saturate(), sepia() e url() (filtro SVG).

Flexible Box Layout

Flexbox è un modello di layout unidimensionale — distribuisce gli elementi lungo un singolo asse (riga o colonna) e gestisce automaticamente allineamento, spaziatura e a capo.

/* Classic centered card */
.card-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  align-items: stretch;
}

.card {
  flex: 1 1 300px; /* grow | shrink | basis */
}

Per una guida completa, consulta La Guida Definitiva a Flexbox.

ProprietàDescrizione
align-contentAllinea le righe di un container flex lungo l'asse trasversale quando c'è spazio extra (flex-start, flex-end, center, space-between, space-around, stretch).
align-itemsAllineamento predefinito sull'asse trasversale per tutti gli elementi flex in un container.
align-selfSovrascrive align-items per un singolo elemento flex.
flexProprietà abbreviata per flex-grow, flex-shrink e flex-basis.
flex-basisLa dimensione iniziale di un elemento flex prima che venga distribuito lo spazio libero.
flex-directionDirezione dell'asse principale: row, row-reverse, column o column-reverse.
flex-flowProprietà abbreviata per flex-direction e flex-wrap.
flex-growQuanto un elemento flex cresce rispetto agli elementi fratelli quando c'è spazio extra.
flex-shrinkQuanto un elemento flex si restringe rispetto agli elementi fratelli quando lo spazio è limitato.
flex-wrapSe gli elementi flex vanno a capo su più righe (nowrap, wrap, wrap-reverse).
justify-contentAllinea gli elementi lungo l'asse principale (flex-start, flex-end, center, space-between, space-around, space-evenly).
justify-itemsAllineamento predefinito sull'asse inline per tutti gli elementi della griglia (usato anche in Grid).
orderModifica l'ordine visivo di un elemento flex o grid senza alterare l'ordine nel DOM.

Proprietà dei Font

ProprietàDescrizione
font-size-adjustPreserva la dimensione apparente del testo quando il font preferito non è disponibile, regolando la dimensione del font di riserva in modo da corrispondere al rapporto x-height.
font-stretchSeleziona una variante condensata o espansa di una famiglia di font (ad es., condensed, expanded, ultra-condensed).

Grid Layout

CSS Grid è un sistema di layout bidimensionale — posiziona gli elementi in righe e colonne contemporaneamente, rendendolo ideale per layout a livello di pagina e griglie di componenti complesse.

/* Three-column responsive grid */
.layout {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
}

/* Named template areas */
.page {
  display: grid;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
  grid-template-columns: 200px 1fr;
  grid-template-rows: auto 1fr auto;
}
ProprietàDescrizione
gridProprietà abbreviata per tutte le proprietà del container grid.
grid-areaAssegna un elemento grid a un'area denominata o ne specifica la posizione riga/colonna come abbreviazione.
grid-auto-columnsImposta la dimensione delle colonne per le tracce create implicitamente (quando gli elementi eccedono la griglia esplicita).
grid-auto-flowControlla come gli elementi posizionati automaticamente riempiono la griglia (row, column, dense).
grid-auto-rowsImposta la dimensione delle righe per le tracce create implicitamente.
grid-columnProprietà abbreviata per grid-column-start e grid-column-end.
grid-column-endDove termina un elemento lungo l'asse delle colonne (numero di linea, span o nome).
grid-column-gapSpazio tra le colonne (sostituito da column-gap nel CSS moderno).
grid-column-startDove inizia un elemento lungo l'asse delle colonne.
grid-gapProprietà abbreviata per row-gap e column-gap (nome precedente; preferire gap).
grid-rowProprietà abbreviata per grid-row-start e grid-row-end.
grid-row-endDove termina un elemento lungo l'asse delle righe.
grid-row-gapSpazio tra le righe (sostituito da row-gap nel CSS moderno).
grid-row-startDove inizia un elemento lungo l'asse delle righe.
grid-templateProprietà abbreviata per grid-template-rows, grid-template-columns e grid-template-areas.
grid-template-areasDefinisce aree template denominate utilizzando una sintassi di arte ASCII basata su stringhe.
grid-template-columnsDefinisce il numero e la dimensione delle colonne esplicite (lunghezze, percentuali, unità fr, repeat(), minmax()).
grid-template-rowsDefinisce il numero e la dimensione delle righe esplicite.

Proprietà di Layout Multi-Colonna

Il layout multi-colonna distribuisce automaticamente il contenuto su un numero o una larghezza di colonne definiti — simile a un layout da giornale.

/* Two-column article body */
.article-body {
  columns: 2 400px;   /* shorthand: column-count column-width */
  column-gap: 2rem;
  column-rule: 1px solid #ddd;
}

h2 {
  column-span: all; /* heading breaks out of columns */
}
ProprietàDescrizione
column-countNumero di colonne in cui viene diviso il contenuto.
column-fillSe le colonne sono bilanciate (balance) o riempite in sequenza (auto).
column-gapSpazio tra le colonne (usato anche in Flexbox e Grid).
column-ruleProprietà abbreviata per la linea divisoria tra colonne (stile, larghezza, colore).
column-rule-colorColore della riga divisoria tra le colonne.
column-rule-styleStile della riga divisoria (solid, dashed, dotted, ecc.).
column-rule-widthSpessore della riga divisoria tra le colonne.
column-spanSe un elemento si estende su una colonna (none) o su tutte le colonne (all).
column-widthLarghezza ideale della colonna; il browser crea tante colonne quante ne entrano.
columnsProprietà abbreviata per column-count e column-width.

Proprietà di Outline

ProprietàDescrizione
outline-offsetSposta l'outline lontano dal bordo dell'elemento (positivo = verso l'esterno; negativo = verso l'interno). A differenza dei margini, non influisce sul layout.

Proprietà del Testo

CSS3 ha aggiunto il controllo sul testo che esula, sull'a capo, sulle ombre e sulla stilizzazione fine delle decorazioni del testo.

/* Truncate long titles with ellipsis */
.card-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Subtle heading shadow */
h1 {
  text-shadow: 1px 2px 4px rgba(0, 0, 0, 0.25);
}
ProprietàDescrizione
tab-sizeLarghezza di un carattere di tabulazione nei blocchi <pre> e di codice (numero di spazi o una lunghezza).
text-align-lastAllineamento dell'ultima riga (o unica) in un blocco di testo giustificato.
text-decoration-colorColore della decorazione di sottolineatura, sopralineatura o testo barrato.
text-decoration-lineQuali linee di decorazione vengono disegnate: underline, overline, line-through o none.
text-decoration-styleStile della linea di decorazione: solid, double, dotted, dashed o wavy.
text-justifyMetodo di giustificazione usato quando text-align: justify è attivo (auto, inter-word, inter-character).
text-overflowCome viene segnalato il testo inline in eccesso: clip (troncato) o ellipsis (mostra ). Richiede overflow: hidden e white-space: nowrap.
text-shadowAggiunge una o più ombre al testo. Sintassi: offset-x offset-y blur-radius color.
word-breakDove avvengono le interruzioni di riga all'interno delle parole: normal, break-all o keep-all.
word-wrapSe il browser può spezzare una parola non spezzabile per evitare l'overflow (normal o break-word). Standardizzato anche come overflow-wrap.

Proprietà di Trasformazione

Le trasformazioni spostano, ruotano, ridimensionano o distorcono gli elementi in spazio 2D o 3D senza influire sul flusso del documento.

/* 2D card flip on hover */
.card {
  perspective: 600px;
  transform-style: preserve-3d;
  transition: transform 0.5s ease;
}

.card:hover {
  transform: rotateY(180deg);
}

.card-back {
  backface-visibility: hidden;
}
ProprietàDescrizione
backface-visibilitySe la faccia posteriore di un elemento trasformato in 3D è visibile quando è rivolta in direzione opposta (visible o hidden). Essenziale per gli effetti di ribaltamento delle card.
perspectiveDistanza dallo spettatore al piano z=0; valori più bassi = effetto 3D più marcato. Si applica al genitore dell'elemento trasformato.
perspective-originLa posizione x/y del punto di fuga per la trasformazione perspective.
transformApplica funzioni di trasformazione 2D o 3D: translate(), rotate(), scale(), skew(), matrix() e le loro varianti 3D.
transform-originIl punto attorno al quale viene applicata una trasformazione (predefinito: 50% 50% — centro dell'elemento).
transform-styleSe i figli vengono renderizzati nello spazio 3D (preserve-3d) o appiattiti nel piano dell'elemento (flat).

Proprietà di Transizione

Le transizioni animano il cambiamento di una proprietà da un valore all'altro nel corso di una durata specificata, quando una proprietà CSS cambia (ad es., su :hover).

/* Smooth color + shadow on hover */
.btn {
  background-color: steelblue;
  box-shadow: none;
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.btn:hover {
  background-color: dodgerblue;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

Transizioni vs. animazioni: usa transition per cambiamenti guidati dallo stato (hover, focus, active) — sono più semplici da scrivere. Usa animation con @keyframes per movimenti indipendenti, ciclici o a più passaggi che si eseguono senza interazione dell'utente.

ProprietàDescrizione
transitionProprietà abbreviata per transition-property, transition-duration, transition-timing-function e transition-delay.
transition-delayQuanto attendere prima che la transizione inizi.
transition-durationQuanto dura la transizione dall'inizio alla fine.
transition-propertyA quale proprietà CSS (o all) si applica la transizione.
transition-timing-functionLa curva di velocità della transizione (ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier(…), steps(…)).

Proprietà di Formattazione Visiva

ProprietàDescrizione
box-shadowAggiunge una o più ombre attorno al box di un elemento. Sintassi: offset-x offset-y blur spread color. Usa inset per un'ombra interna.
box-sizingDetermina se width e height includono padding e bordo (border-box) o li escludono (content-box, il valore predefinito in CSS2). Quasi tutti i progetti moderni impostano *, *::before, *::after { box-sizing: border-box; }.
overflow-xControlla l'overflow orizzontale: visible, hidden, clip, scroll o auto.
overflow-yControlla l'overflow verticale: visible, hidden, clip, scroll o auto.
resizeRende un elemento ridimensionabile dall'utente: both, horizontal, vertical o none. Richiede che overflow sia diverso da visible.

Riferimenti Correlati

Una volta individuata la proprietà di cui hai bisogno, questi capitoli trattano in profondità le funzionalità CSS3 più utilizzate:

Pratica

Pratica
Quali delle seguenti sono proprietà CSS3 valide?
Quali delle seguenti sono proprietà CSS3 valide?
Was this page helpful?