edubun
Italiano

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.

Contenuto, padding, bordo e margine. Con il dimensionamento content-box predefinito, width imposta solo il contenuto: 200 + 16 + 16 + 2 + 2 = 236 pixel di larghezza.

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.

Il contorno (outline) viene disegnato fuori dal bordo e non occupa spazio, ed è per questo che i browser lo usano per l'anello del focus da tastiera. Se togli il contorno con outline: none, sostituiscilo con un altro stile di focus ben visibile.
area del contenutoDove stanno testo e immagini
paddingSpazio dentro il bordo; mostra lo sfondo
bordoLinea intorno al padding; vuole uno stile
margineSpazio trasparente fuori dal bordo
box-sizing: border-boxwidth comprende padding e bordo
collasso dei marginiMargini verticali a contatto: vince il più grande
inline-blockScorre nella riga ma rispetta larghezza e padding
  1. Metti in ordine gli strati dall'interno all'esterno.
  2. content-box: width 300px, padding 20px, bordo 5px. Larghezza totale?
  3. border-box: width 300px, padding 20px, bordo 5px. Quanto è larga l'area del contenuto?
  4. 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
  5. padding: 1px 2px 3px 4px: quanto c'è a sinistra?
  6. Un margin-bottom di 20px incontra un margin-top di 30px. Quanto è grande lo spazio?
  7. Perché border: 2px #333 non disegna nulla?
    • Manca uno stile del bordo come solid
    • Il colore è troppo scuro
    • I bordi vogliono un margine
  8. Quale valore di display permette a uno span di avere larghezza e padding verticale restando nella riga?
    • inline-block
    • inline
    • none
  9. Come si centra in orizzontale un blocco largo 600px?
    • margin: 0 auto
    • padding: auto
    • text-align: center on the block
  10. Quale parte del riquadro mostra il colore di sfondo?
    • Contenuto e padding (e sotto il bordo)
    • Solo il contenuto
    • Anche il margine
Punti chiave
  • 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