Il modello a riquadri
Dai a un riquadro width: 200px, 16px di padding e un bordo di 2px: per impostazione predefinita occupa 236 pixel di larghezza sullo schermo, non 200.
Ogni elemento è un riquadro
Per impaginare una pagina, il browser trasforma ogni elemento in un rettangolo. Ogni riquadro ha quattro strati, dall'interno all'esterno. L'area del contenuto contiene il testo o l'immagine. Il padding è spazio dentro il riquadro, tra contenuto e bordo, e prende il colore di sfondo del riquadro. Il bordo è una linea intorno al padding. Il margine è spazio fuori dal bordo che allontana gli altri riquadri; è sempre trasparente. Gli strumenti per sviluppatori del browser disegnano proprio questo schema quando ispezioni un elemento, con i numeri già inseriti.
Forma abbreviata per quattro lati
padding, margin e border-width accettano da uno a quattro valori, in senso orario a partire dall'alto. padding: 16px imposta tutti e quattro i lati. padding: 8px 16px imposta sopra e sotto a 8 e sinistra e destra a 16. padding: 4px 8px 12px 16px imposta sopra, destra, sotto e sinistra in quest'ordine. Ogni lato si può anche impostare da solo, come in margin-top. border: 2px solid #333 imposta insieme spessore, stile e colore; senza uno stile come solid o dashed il bordo non viene disegnato affatto.
box-sizing: l'impostazione che quasi tutti cambiano
Per impostazione predefinita width e height impostano solo la dimensione dell'area del contenuto, e padding e bordo si aggiungono sopra. È il modello content-box, e rende scomode le impaginazioni: due riquadri con width: 50% e un po' di padding non stanno più affiancati. Con box-sizing: border-box la larghezza comprende padding e bordo, e l'area del contenuto si restringe per fare spazio. Molti fogli di stile cominciano applicandolo a tutti gli elementi con *, *::before, *::after { box-sizing: border-box; }.
Riquadri di blocco e in linea
I riquadri si comportano in modo diverso secondo il loro valore di display. I riquadri di blocco, come p, h1 e section, cominciano su una nuova riga e si allargano fino a riempire la larghezza del contenitore. I riquadri in linea, come a, strong e span, stanno dentro una riga di testo; width e height non si applicano, e il loro padding e margine verticali non spostano le altre righe. display: inline-block sta a metà strada: il riquadro scorre nella riga come una parola ma rispetta larghezza, altezza e padding, ed è adatto a piccole etichette e pulsanti.
Margini che collassano
Una regola sorprende quasi tutti. Quando il margine inferiore di un blocco incontra il margine superiore del successivo, non si sommano: vince il più grande. Un paragrafo con margin-bottom: 20px seguito da un titolo con margin-top: 30px finisce a 30 pixel di distanza, non 50. Si chiama collasso dei margini, e succede solo ai margini verticali tra blocchi nel flusso normale, non dentro contenitori flex o grid. Per centrare un blocco in orizzontale, dagli un width o un max-width e margin: 0 auto: i due margini laterali automatici si dividono in parti uguali lo spazio libero.
outline: none, sostituiscilo con un altro stile di focus ben visibile.| area del contenuto | Dove stanno testo e immagini |
| padding | Spazio dentro il bordo; mostra lo sfondo |
| bordo | Linea intorno al padding; vuole uno stile |
| margine | Spazio trasparente fuori dal bordo |
| box-sizing: border-box | width comprende padding e bordo |
| collasso dei margini | Margini verticali a contatto: vince il più grande |
| inline-block | Scorre nella riga ma rispetta larghezza e padding |
- Metti in ordine gli strati dall'interno all'esterno.
- content-box: width 300px, padding 20px, bordo 5px. Larghezza totale?
- border-box: width 300px, padding 20px, bordo 5px. Quanto è larga l'area del contenuto?
- Che cosa imposta
margin: 10px 20px?- 10 sopra e sotto, 20 a sinistra e a destra
- 10 a sinistra e a destra, 20 sopra e sotto
- 10 sopra, 20 sotto
padding: 1px 2px 3px 4px: quanto c'è a sinistra?- Un margin-bottom di 20px incontra un margin-top di 30px. Quanto è grande lo spazio?
- Perché
border: 2px #333non disegna nulla?- Manca uno stile del bordo come solid
- Il colore è troppo scuro
- I bordi vogliono un margine
- Quale valore di display permette a uno span di avere larghezza e padding verticale restando nella riga?
- inline-block
- inline
- none
- Come si centra in orizzontale un blocco largo 600px?
- margin: 0 auto
- padding: auto
- text-align: center on the block
- Quale parte del riquadro mostra il colore di sfondo?
- Contenuto e padding (e sotto il bordo)
- Solo il contenuto
- Anche il margine
- Contenuto, padding, bordo, margine.
- content-box aggiunge padding e bordo a width; border-box li comprende.
- La forma abbreviata va in senso orario dall'alto; i margini verticali a contatto collassano.
Fonti di questo corso (6)
- W3C CSS Working Group specifications: CSS Snapshot 2025, Selectors Level 4, CSS Cascading and Inheritance Level 5, CSS Color Level 4, CSS Values and Units Level 4, CSS Box Model Level 3, CSS Box Sizing Level 3, CSS Fonts Level 4, CSS Flexible Box Layout Level 1, CSS Grid Layout Level 2, Media Queries Level 4 and Level 5 (w3.org/TR/, checked 2026-10-17)
- MDN Web Docs, Learn web development: CSS styling basics and CSS layout, and the CSS reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics, .../Core/CSS_layout, developer.mozilla.org/en-US/docs/Web/CSS, checked 2026-10-17)
- W3C, CSS history and CSS1 Recommendation of 17 December 1996 (w3.org/Style/CSS20/history.html, w3.org/press-releases/1996/css1-rec, checked 2026-10-17)
- W3C WCAG 2.2, success criteria 1.4.3 Contrast (Minimum)
- 1.4.8 Visual Presentation, 1.4.10 Reflow, 1.4.12 Text Spacing (w3.org/TR/WCAG22/, checked 2026-10-17)
- every code exercise checked with a Playwright probe against a reference solution.
Consultato il: 2026-10-17