Visualizzatore del modello a riquadro CSS

Regola margine, bordo, padding e dimensioni del contenuto e visualizza il modello di box CSS dal vivo.

Dimensioni

Padding (px)

Bordo (px)

Margine (px)

margine
bordo
padding
200 × 120

  

Come usare

  1. Inserisci i valori del modello di box: definisci margine, bordo, padding e dimensioni del contenuto nei campi o nei cursori interattivi.
  2. Esplora la visualizzazione: il diagramma classico di box annidati si aggiorna in tempo reale, margine (arancione), bordo (giallo), padding (verde) e contenuto (blu), tutti chiaramente etichettati.
  3. Copia il CSS: clicca su Copia il CSS per ottenere le proprietà complete del modello di box dell'elemento configurato.

Perché usare il visualizzatore del modello di box CSS?

Il modello di box CSS è uno dei concetti più fondamentali del layout web, e una delle fonti di bug più comuni, soprattutto quando si mescolano valori di box-sizing, fusione di margini e dimensionamento dei bordi. Questo visualizzatore interattivo rende il modello di box concreto e tangibile: regoli i valori e vedi immediatamente come margine, bordo e padding si impilano attorno al contenuto. Essenziale per imparare, eseguire il debug e insegnare il CSS.

Funzionalità

Domande frequenti

Qual è la differenza tra content-box e border-box?

Con content-box (predefinito), width e height si applicano solo all'area di contenuto, padding e bordo si aggiungono alla dimensione totale dell'elemento. Con border-box, width e height includono padding e bordo, il che rende le dimensioni più prevedibili. La maggior parte dei reset CSS moderni applica box-sizing: border-box a tutti gli elementi.

Cos'è la fusione dei margini?

Quando due margini verticali si toccano (tra elementi block adiacenti o tra genitore e primo/ultimo figlio), si fondono in un singolo margine uguale al maggiore dei due valori. Questo non avviene con i figli flex o grid, né con elementi che hanno padding o bordi.

Come rimuovere lo spazio extra sotto gli elementi inline?

Gli elementi inline (come <img>) hanno un piccolo spazio sotto di loro causato dall'allineamento della baseline del line-height. Risolvilo mettendo display: block sull'elemento, o vertical-align: bottom, o font-size: 0 sul genitore.

Cosa definisce davvero il box model CSS

Il box model CSS è la rappresentazione rettangolare di ogni elemento su una pagina web. Ogni elemento ha quattro box concentrici: il box content (dove vivono testo, immagini, elementi figli), il box padding (spazio tra contenuto e bordo, dentro il confine visibile), il box border (il contorno visibile disegnato attorno al padding) e il box margin (spazio trasparente fuori dal bordo che separa questo elemento dai suoi vicini). La dimensione visibile totale di un elemento è content + padding + border; il margin è invisibile ma respinge gli altri elementi.

Il concetto critico è box-sizing. Per default (box-sizing: content-box, il valore della specifica CSS 1), le proprietà width e height si applicano solo al box content. Se imposti width: 200px; padding: 20px; border: 2px solid, la larghezza totale renderizzata è 200 + 40 + 4 = 244 pixel. Questo è poco intuitivo: un elemento largo 200px occupa effettivamente 244 pixel di spazio orizzontale. L'alternativa box-sizing: border-box (aggiunta in CSS 3) inverte questo: la proprietà width è la dimensione visibile totale incluso padding e border, quindi l'area content si restringe per adattarsi. border-box è ciò che la maggior parte degli sviluppatori si aspetta; è diventato lo standard di fatto tramite il reset CSS di Paul Irish del 2012 * { box-sizing: border-box }.

Capire il box model è importante perché i bug di layout quasi sempre risalgono alla confusione su quale valore si applica a quale box. Perché il mio elemento è più largo di quanto ho impostato? è la sorpresa del content-box. Perché il mio margin non spinge giù i fratelli? è di solito il collasso del margin. Perché padding-top: 50% si comporta in modo strano? è perché il padding percentuale è calcolato relativamente alla larghezza del genitore, non all'altezza. Ogni sviluppatore CSS incontra queste confusioni; questo visualizzatore le rende concrete lasciandoti regolare i valori e vedere la geometria del box risultante in tempo reale.

Come funziona questo strumento sotto il cofano

Il diagramma interattivo è una serie di div colorati annidati corrispondenti a ogni box (margin in arancione, border in giallo, padding in verde, content in blu). Mentre cambi i valori di input, JavaScript aggiorna gli attributi style inline dei div del diagramma così riflettono i valori numericamente e visivamente. Le proporzioni sono scalate per adattarsi all'area di anteprima; valori pixel assoluti spingerebbero il diagramma fuori schermo per input tipici.

Il calcolo della dimensione totale dipende dalla modalità box-sizing. Per content-box: larghezza totale = larghezza content + padding-left + padding-right + border-left + border-right. Per border-box: larghezza totale = il valore width (padding e border sono sottratti dall'area content). Lo strumento calcola entrambe le modalità simultaneamente quando attivi box-sizing, così puoi confrontare direttamente.

L'output CSS generato usa i tuoi input come valori delle proprietà: box-sizing: border-box; width: 200px; padding: 10px 20px; border: 2px solid; margin: 1rem auto;. Copia questo direttamente nel tuo foglio di stile e applica la classe corrispondente. Nulla lascia il tuo browser; tutto gira localmente in JavaScript. Niente analytics, niente backend, niente account. Ricarica e lo stato è sparito.

Breve storia del box model CSS

Flussi di lavoro reali

Trappole comuni e cosa significano

Privacy: tutto gira nel tuo browser

Gli strumenti di apprendimento e visualizzazione CSS arrivano in due varianti: semplici pagine HTML che eseguono JavaScript lato client (private, veloci, senza setup) ed editor cloud con progetti salvati (collaborativi ma con compromessi di privacy). Questo strumento è del primo tipo. I tuoi valori inseriti, lo stato del toggle box-sizing, il tuo CSS generato: tutto resta nella tua sessione browser. Ricarica la pagina e lo stato è sparito a meno che tu non abbia copiato il CSS prima.

Le poste in gioco della privacy sono basse qui perché i valori del box model raramente contengono informazioni sensibili. Comunque, la mancanza di analytics conta: puoi sperimentare liberamente senza che il tuo processo di prova ed errore venga registrato. Particolarmente utile in contesti di classe o di formazione aziendale dove avere studenti o tirocinanti che registrano account su piattaforme di terze parti è un punto di attrito. Questa è una singola pagina statica senza backend, utilizzabile in qualsiasi browser, comprese le macchine enterprise bloccate.

Quando un altro strumento è la scelta giusta

Altre domande frequenti

Dovrei usare il * { box-sizing: border-box } universale?

Per la maggior parte dei progetti, sì. La proposta del 2012 di Paul Irish è ora il default del settore e si allinea con come la maggior parte degli sviluppatori si aspetta che width e height funzionino. Framework come Bootstrap, Tailwind, Bulma e Material UI spediscono con border-box come default. I progetti moderni che iniziano nel 2026 dovrebbero impostare *, *::before, *::after { box-sizing: border-box; } all'inizio del loro reset, e raramente hanno bisogno di pensare a box-sizing di nuovo. Override specifici a content-box sono possibili per singoli elementi dove border-box rovinerebbe le cose.

Perché il mio margin spinge giù il genitore invece di spingere i fratelli?

Questo è il collasso del margin. Quando il margin top di un figlio incontra il bordo top del genitore senza padding/border in mezzo, il margin del figlio fugge e si applica al genitore invece. Soluzioni: aggiungi padding-top: 1px al genitore (qualsiasi valore funziona), aggiungi border: 1px solid transparent, imposta il genitore come container flex o grid (il collasso è soppresso in quelle modalità), o usa display: flow-root sul genitore (una regola moderna esplicita stabilisci un nuovo contesto di formattazione block). Tutto questo blocca il margin dal collassare attraverso.

Qual è la differenza tra margin: auto e margin: 0?

margin: 0 significa nessun margin; l'elemento è a filo con i suoi vicini. margin: auto significa che il browser calcola il margin per distribuire lo spazio orizzontale rimanente, tipicamente usato per centrare un elemento block: margin-left: auto; margin-right: auto; divide equamente lo spazio rimanente. margin: auto auto auto auto (o shorthand margin: auto) centra sia orizzontalmente che verticalmente dentro un container flex. Fuori da flex/grid, funzionano solo i margin auto orizzontali.

In cosa si differenzia outline da border?

Outline disegna attorno a un elemento ma è fuori dal box model: non si aggiunge alla dimensione dell'elemento e non spinge via i vicini. Border è parte del box model e si aggiunge alla dimensione renderizzata. Outline è tipicamente usato per gli anelli di focus (outline :focus-visible) dove vuoi un indicatore visibile senza spostare il layout. Border è usato quando la linea dovrebbe essere parte della struttura dell'elemento. Non rimuovere outline: none senza fornire un indicatore di focus alternativo; farlo rompe l'accessibilità da tastiera.

Perché usare le proprietà logiche come margin-inline-start?

Le proprietà logiche (margin-block-start, padding-inline, ecc.) si adattano alla direzione di scrittura del documento. In inglese (da sinistra a destra), margin-inline-start è la stessa cosa di margin-left. In arabo o ebraico (da destra a sinistra), diventa margin-right automaticamente. Per siti che supportano più lingue, le proprietà logiche rendono l'internazionalizzazione CSS automatica. Per siti solo in inglese, sono equivalenti nell'effetto ma segnalano l'intento più chiaramente: questo margin è all'inizio del flusso del testo invece di questo margin è sul lato sinistro.

Come creo un box ad aspect-ratio fisso?

Il modo moderno è la proprietà CSS aspect-ratio: aspect-ratio: 16/9 su un div rende la sua altezza automaticamente 9/16 della sua larghezza. Supportata in tutti i browser moderni (2021+). La tecnica legacy usa padding-top come percentuale: un div con padding-top: 56.25% crea un rapporto 16:9 (9/16 = 56.25%). Il trucco del padding-top funziona ancora ma la sintassi della proprietà è più pulita. Usa aspect-ratio per nuovo codice; l'hack legacy rimane in Tailwind e altri strumenti che hanno bisogno di un ampio supporto browser.

Strumenti correlati

Generatore di colonne multiple CSS Generatore di griglie CSS Generatore di CSS Flexbox Generatore CSS Border Radius