CssProgettazione Web

Box Model

Iniziamo a spiegare le regole degli elementi di tipo block.

Elementi blocco e in linea

  • block-level – sono elementi contenitore di altri elementi di tipo blocco o inline;
  • inline – possono contenere solo altri elementi inline;

Gli elementi block producono un ritorno a capo e generalmente vengono usati per definire la struttura del sito mentre inline non producono un ritorno a capo e riguardano il contenuto.

Il block-model prevede l’area dei contenuti, un padding, un bordo e un margine. L’ingombro del box è dato dalla somma di questi quattro elementi.

.box {
width: 250px;
padding: 10px;
border: 2px; solid #000;
margin: 15px;
}

Quindi l’ingombro è: 250 +10 * 2 + 2 * 2 + 15 * 2 = 304

Vediamo le principali proprietà:

  • width – indica la larghezza espressa in valore numerico (ad esempio in pixel) o in percentuale, in mancanza si espande per tutta la larghezza disponibile;
  • min-width e max-width – esprimono una larghezza minima e massima in valore numerico (ad esempio in pixel) o in percentuale;
  • height – indica l’altezza espressa in valore numerico (ad esempio in pixel) o in percentuale;
  • min-height e min-width – esprimono un’altezza minima e massima in valore numerico (ad esempio in pixel) o in percentuale;

Possiamo prevedere cosa fare se i contenuti del box superano lo spazio assegnato;

  • visible – tutto il contenuto resta visibile;
  • hidden – il contenuto eccedente non viene mostrato;
  • scroll – il contenuto è visibile utilizzando le barre di scorrimento;
  • auto – vengono applicate le regole di default del browser;

Tramite padding definiamo lo spazio tra l’area dei contenuti ed il confine interno del box, viene utilizzato quando vogliamo distanziare il bordo o il contenuto dal box. I valori partendo da sinistra sono: superiore, destro, inferiore, sinistro. Possiamo anche definire singolarmente i valori:

  • padding-top – superiore;
  • padding-bottom – inferiore;
  • padding-left – sinistro;
  • padding-right – destro;

Tramite margin assegniamo un margine esterno al box, l’assegnazione dei valori è uguale a quelli di padding. Il margine può avere dei dati negativi ed in questo caso l’elemento esce dai confini del box genitore.

Se due box sono adiacenti verticalmente succede che collassano e il margine tra i due box è quello maggiore e non la somma dei due margini.

Per il bordo possiamo definire: spessore, stile e colore. Per i margini vale la stessa regola applicata al padding.

  • spessore: può avere un valore numerico oppure una stringa (thin, medium, thick)
    • border-top-width;
    • border-bottom-width;
    • border-left-width;
    • border-right-width;
  • stile: può assumere una stringa (none, hidden, dotted, dashed, solid, double, groove, ridge, insert, outset)
    • border-top-style;
    • border-bottom-style;
    • border-left-style;
    • border-right-style;
  • colore: può contenere un valore esadecimale o una parola chiave
    • border-top-color;
    • border-bottom-color;
    • border-left-color;
    • border-right-color;

Possiamo definire un medesimo style a tutti i bordi oppure definirli separatamente (border-top, border-bottom, border-left, border-right).