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 bordo —
border-radius,border-image - Ombre —
box-shadow,text-shadow - Gradienti e sfondi multipli —
background-size,background-clip - Layout flessibili e a griglia — Flexbox (
flex,align-items, …), Grid (grid,grid-template-columns, …) - Trasformazioni 2D e 3D —
transform,perspective - Transizioni fluide di stato —
transition - Animazioni con fotogrammi chiave —
animation,@keyframes - Testo su più colonne —
column-count,column-gap - Filtri visivi —
filter(blur, brightness, contrast, …) - Trasparenza personalizzata —
opacity
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 |
|---|---|
| animation | Proprietà abbreviata che imposta tutte le sotto-proprietà dell'animazione in una sola dichiarazione. |
| animation-delay | Specifica quando inizia un'animazione (positivo = ritardo; negativo = avvio a metà ciclo). |
| animation-direction | Controlla la direzione di riproduzione: normal, reverse, alternate o alternate-reverse. |
| animation-duration | Definisce quanto dura un ciclo di animazione (ad es., 0.4s, 500ms). |
| animation-fill-mode | Imposta lo stile dell'elemento prima che l'animazione inizi e/o dopo che termina (forwards, backwards, both). |
| animation-iteration-count | Quante volte viene riprodotta l'animazione — un numero o infinite. |
| animation-name | Nomina la regola @keyframes da applicare. |
| animation-play-state | Mette in pausa (paused) o riprende (running) un'animazione — utile per i pulsanti di attivazione/disattivazione. |
| animation-timing-function | Curva 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-clip | Controlla fino a dove si estende lo sfondo — border-box, padding-box o content-box. |
| background-origin | Imposta l'origine per background-position — border-box, padding-box o content-box. |
| background-size | Imposta 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-radius | Arrotonda l'angolo in basso a sinistra. Accetta un raggio (cerchio) o due (ellisse). |
| border-bottom-right-radius | Arrotonda l'angolo in basso a destra. |
| border-image | Usa un'immagine come bordo, suddivisa in nove regioni. |
| border-image-outset | Di quanto l'immagine del bordo si estende oltre il box del bordo. |
| border-image-repeat | Se i bordi laterali dell'immagine del bordo sono stretched, repeated o rounded. |
| border-image-slice | Divide l'immagine sorgente in nove sezioni (quattro angoli, quattro bordi, centro). |
| border-image-source | L'URL dell'immagine o il gradiente usato come bordo. |
| border-image-width | Larghezza delle sezioni dell'immagine del bordo (può differire da border-width in CSS). |
| border-radius | Proprietà abbreviata per tutti e quattro i raggi degli angoli. |
| border-top-left-radius | Arrotonda l'angolo in alto a sinistra. |
| border-top-right-radius | Arrotonda l'angolo in alto a destra. |
Colore e Trasparenza
| Proprietà | Descrizione |
|---|---|
| opacity | Imposta 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 |
|---|---|
| filter | Applica 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-content | Allinea 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-items | Allineamento predefinito sull'asse trasversale per tutti gli elementi flex in un container. |
| align-self | Sovrascrive align-items per un singolo elemento flex. |
| flex | Proprietà abbreviata per flex-grow, flex-shrink e flex-basis. |
| flex-basis | La dimensione iniziale di un elemento flex prima che venga distribuito lo spazio libero. |
| flex-direction | Direzione dell'asse principale: row, row-reverse, column o column-reverse. |
| flex-flow | Proprietà abbreviata per flex-direction e flex-wrap. |
| flex-grow | Quanto un elemento flex cresce rispetto agli elementi fratelli quando c'è spazio extra. |
| flex-shrink | Quanto un elemento flex si restringe rispetto agli elementi fratelli quando lo spazio è limitato. |
| flex-wrap | Se gli elementi flex vanno a capo su più righe (nowrap, wrap, wrap-reverse). |
| justify-content | Allinea gli elementi lungo l'asse principale (flex-start, flex-end, center, space-between, space-around, space-evenly). |
| justify-items | Allineamento predefinito sull'asse inline per tutti gli elementi della griglia (usato anche in Grid). |
| order | Modifica l'ordine visivo di un elemento flex o grid senza alterare l'ordine nel DOM. |
Proprietà dei Font
| Proprietà | Descrizione |
|---|---|
| font-size-adjust | Preserva 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-stretch | Seleziona 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 |
|---|---|
| grid | Proprietà abbreviata per tutte le proprietà del container grid. |
| grid-area | Assegna un elemento grid a un'area denominata o ne specifica la posizione riga/colonna come abbreviazione. |
| grid-auto-columns | Imposta la dimensione delle colonne per le tracce create implicitamente (quando gli elementi eccedono la griglia esplicita). |
| grid-auto-flow | Controlla come gli elementi posizionati automaticamente riempiono la griglia (row, column, dense). |
| grid-auto-rows | Imposta la dimensione delle righe per le tracce create implicitamente. |
| grid-column | Proprietà abbreviata per grid-column-start e grid-column-end. |
| grid-column-end | Dove termina un elemento lungo l'asse delle colonne (numero di linea, span o nome). |
| grid-column-gap | Spazio tra le colonne (sostituito da column-gap nel CSS moderno). |
| grid-column-start | Dove inizia un elemento lungo l'asse delle colonne. |
| grid-gap | Proprietà abbreviata per row-gap e column-gap (nome precedente; preferire gap). |
| grid-row | Proprietà abbreviata per grid-row-start e grid-row-end. |
| grid-row-end | Dove termina un elemento lungo l'asse delle righe. |
| grid-row-gap | Spazio tra le righe (sostituito da row-gap nel CSS moderno). |
| grid-row-start | Dove inizia un elemento lungo l'asse delle righe. |
| grid-template | Proprietà abbreviata per grid-template-rows, grid-template-columns e grid-template-areas. |
| grid-template-areas | Definisce aree template denominate utilizzando una sintassi di arte ASCII basata su stringhe. |
| grid-template-columns | Definisce il numero e la dimensione delle colonne esplicite (lunghezze, percentuali, unità fr, repeat(), minmax()). |
| grid-template-rows | Definisce 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-count | Numero di colonne in cui viene diviso il contenuto. |
| column-fill | Se le colonne sono bilanciate (balance) o riempite in sequenza (auto). |
| column-gap | Spazio tra le colonne (usato anche in Flexbox e Grid). |
| column-rule | Proprietà abbreviata per la linea divisoria tra colonne (stile, larghezza, colore). |
| column-rule-color | Colore della riga divisoria tra le colonne. |
| column-rule-style | Stile della riga divisoria (solid, dashed, dotted, ecc.). |
| column-rule-width | Spessore della riga divisoria tra le colonne. |
| column-span | Se un elemento si estende su una colonna (none) o su tutte le colonne (all). |
| column-width | Larghezza ideale della colonna; il browser crea tante colonne quante ne entrano. |
| columns | Proprietà abbreviata per column-count e column-width. |
Proprietà di Outline
| Proprietà | Descrizione |
|---|---|
| outline-offset | Sposta 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-size | Larghezza di un carattere di tabulazione nei blocchi <pre> e di codice (numero di spazi o una lunghezza). |
| text-align-last | Allineamento dell'ultima riga (o unica) in un blocco di testo giustificato. |
| text-decoration-color | Colore della decorazione di sottolineatura, sopralineatura o testo barrato. |
| text-decoration-line | Quali linee di decorazione vengono disegnate: underline, overline, line-through o none. |
| text-decoration-style | Stile della linea di decorazione: solid, double, dotted, dashed o wavy. |
| text-justify | Metodo di giustificazione usato quando text-align: justify è attivo (auto, inter-word, inter-character). |
| text-overflow | Come viene segnalato il testo inline in eccesso: clip (troncato) o ellipsis (mostra …). Richiede overflow: hidden e white-space: nowrap. |
| text-shadow | Aggiunge una o più ombre al testo. Sintassi: offset-x offset-y blur-radius color. |
| word-break | Dove avvengono le interruzioni di riga all'interno delle parole: normal, break-all o keep-all. |
| word-wrap | Se 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-visibility | Se 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. |
| perspective | Distanza dallo spettatore al piano z=0; valori più bassi = effetto 3D più marcato. Si applica al genitore dell'elemento trasformato. |
| perspective-origin | La posizione x/y del punto di fuga per la trasformazione perspective. |
| transform | Applica funzioni di trasformazione 2D o 3D: translate(), rotate(), scale(), skew(), matrix() e le loro varianti 3D. |
| transform-origin | Il punto attorno al quale viene applicata una trasformazione (predefinito: 50% 50% — centro dell'elemento). |
| transform-style | Se 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 |
|---|---|
| transition | Proprietà abbreviata per transition-property, transition-duration, transition-timing-function e transition-delay. |
| transition-delay | Quanto attendere prima che la transizione inizi. |
| transition-duration | Quanto dura la transizione dall'inizio alla fine. |
| transition-property | A quale proprietà CSS (o all) si applica la transizione. |
| transition-timing-function | La curva di velocità della transizione (ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier(…), steps(…)). |
Proprietà di Formattazione Visiva
| Proprietà | Descrizione |
|---|---|
| box-shadow | Aggiunge 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-sizing | Determina 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-x | Controlla l'overflow orizzontale: visible, hidden, clip, scroll o auto. |
| overflow-y | Controlla l'overflow verticale: visible, hidden, clip, scroll o auto. |
| resize | Rende 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:
- CSS Animation e @keyframes per il movimento basato su fotogrammi chiave.
- La Guida Definitiva a Flexbox per il layout unidimensionale.
- grid e grid-template-columns per il layout di pagina bidimensionale.
- filter per sfocatura, luminosità, contrasto, ombra esterna e altri effetti grafici.
- transform e transition per effetti visivi e transizioni fluide di stato.
- border-radius e box-shadow per la stilizzazione decorativa moderna.