Box Model CSS: Margin, Padding, Border e Display

Visualizzatore del Box Model CSS

Box Model CSS: Margin vs Padding, Border, Display | We.Inc

Trascina gli slider per contenuto, padding, border e margin e guarda il box model ridisegnarsi, con box-sizing, margin collapsing, stili del bordo e ogni valore di display confrontati dal vivo.

Ogni elemento è disegnato come rettangoli annidati: il contenuto, poi il padding (spazio dentro il bordo, colorato con lo sfondo), poi il bordo, poi il margin (spazio trasparente all'esterno che allontana gli elementi vicini). Con box-sizing: border-box, la larghezza che imposti include padding e bordo, il che rende i layout molto più prevedibili. La proprietà display decide come scorrono i box.

I quattro livelli, dall'interno verso l'esterno

Sposta i quattro slider e il diagramma, la dimensione totale misurata e il CSS cambiano insieme. Sotto il visualizzatore puoi cambiare box-sizing, guardare due margin fondersi in uno e confrontare block, inline, inline-block, flex, grid e none affiancati sugli stessi tre elementi.

Domande frequenti

Qual è la differenza tra margin e padding?

Il padding sta dentro il bordo, quindi è riempito dallo sfondo dell'elemento e fa parte della sua area cliccabile. Il margin sta fuori dal bordo, è sempre trasparente e serve solo a separare l'elemento dagli altri. I margin verticali tra blocchi possono anche fondersi, mentre il padding non si fonde mai.

Perché il mio elemento è più largo della larghezza che ho impostato?

Con il box-sizing: content-box predefinito, width si applica solo al contenuto, e padding e bordo vengono aggiunti sopra. Un box di 300px con 20px di padding e un bordo di 2px viene renderizzato largo 344px. Passa a box-sizing: border-box e resta 300px, con il contenuto che si restringe per starci.

Quando si fondono i margin?

I margin superiore e inferiore dei box block nel flusso normale si fondono quando si toccano: tra elementi fratelli, e tra un genitore e il suo primo o ultimo figlio quando nessun bordo, padding o contenuto inline li separa. Vince il margin più grande. I margin non si fondono mai dentro contenitori flex o grid, né in orizzontale.

Qual è la differenza tra display: none e visibility: hidden?

display: none rimuove completamente l'elemento dal layout, quindi lo spazio si chiude e gli screen reader lo saltano. visibility: hidden mantiene lo spazio riservato ma non disegna nulla, e il contenuto è nascosto anche alle tecnologie assistive. opacity: 0 mantiene sia lo spazio sia la possibilità di essere cliccato o ricevere il focus.

Posso impostare la larghezza di un elemento inline?

No. Larghezza, altezza e margin verticali vengono ignorati su un semplice box inline come uno span. Il padding verticale viene disegnato ma non allontana le righe. Cambialo in inline-block, o rendi il genitore un contenitore flex, e quelle dimensioni iniziano ad applicarsi.

content-box contro border-box in numeri

Bordi oltre la semplice linea

Come display cambia il box

Margin o padding? Scegli in base al compito

Quale usare

Margin collapsing, dal vivo

La prima coppia mostra due fratelli i cui margin di 24px e 40px si incontrano: lo spazio è 40px, non 64px. La seconda coppia sta in un contenitore flow-root, che impedisce ai margin di genitore e figlio di fondersi, e la terza usa flex, dove nulla si fonde.

Fusione tra fratelli e tra genitore e figlio

Modifica i margin e guarda gli spazi. Aggiungere padding-top: 1px al box esterno impedisce anche la fusione tra genitore e figlio.

Stili del bordo e raggio

Tutti gli otto stili di bordo visibili

groove, ridge, inset e outset ombreggiano il bordo per simulare profondità. Rendono al meglio a 4px o più.

Forme con il raggio: arrotondato, pillola, cerchio, ellisse

Un raggio enorme come 999px crea una pillola di qualsiasi lunghezza. 50% su un quadrato dà un cerchio.

Ogni valore di display sugli stessi tre elementi

Valori di display a confronto

block, inline, inline-block, flex e grid affiancati

Ogni riga contiene gli stessi tre span con width: 80px e padding. Solo inline ignora la larghezza.

display: none vs visibility: hidden vs opacity: 0

Tre modi per nascondere, a confronto

L'elemento centrale nascosto in tre modi

Nota lo spazio lasciato da visibility e opacity, e lo spazio chiuso con display: none.

Il reset border-box

Applica border-box ovunque

Gli pseudo-elementi sono inclusi perché sono anch'essi dei box. Il Preflight di Tailwind include già questa regola.

Equivalenti Tailwind

Utility del box model in Tailwind (scala di spaziatura predefinita, 1 unità = 0.25rem)

Visualizzatore del box model

Livello del margin

Box renderizzato (bordo esterno del border)

Spazio occupato, margin compresi

Il giallo è il margin, la linea blu è il bordo, il verde è il padding, l'azzurro è il contenuto.

larghezza del bordo

Copia CSS

Inizia gratis · Nessuna carta di credito richiesta

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito