HTML & CSS per principianti

HTML & CSS per principianti (Parte 36): Il modello a box.

Tutti i video del tutorial HTML & CSS per principianti

In CSS gli elementi vengono trattati principalmente come caselle rettangolari o bande. Per la descrizione delle caselle vengono utilizzate le seguenti proprietà – ormai sicuramente conosciute da voi:

width – la larghezza dell'elemento
height – l'altezza dell'elemento
left – distanza a sinistra
right – distanza a destra
top – distanza in alto
bottom – distanza in basso
margin – il margine esterno
border – il bordo dell'elemento
padding – il padding interno, quindi la distanza dal bordo al contenuto dell'elemento

Queste proprietà sono già state presentate.

La larghezza totale di un elemento si ottiene sommando la larghezza delle singole indicazioni. (La stessa cosa vale per l'altezza).

Un esempio:

div#box {
   width: 100px;
   padding: 20px;     /* 20px sia a sinistra che a destra /
   border: 2px solid; /* 2px sia a sinistra che a destra /
   margin: 0 30px;    /* 30px sia a sinistra che a destra */
 }

Quale larghezza possiede questa area div? Diamo un'occhiata ai valori singoli:

• 100 pixel

• 2 volte 20 pixel

• 2 volte 2 pixel

• 2 volte 30 pixel

Questo porta ad una larghezza totale dell'elemento di 204 pixel.

La larghezza e l'altezza degli elementi vengono determinate tramite width e height. Se queste indicazioni non sono esplicitamente presenti nel foglio di stile, si applicano le seguenti regole:

• Se manca width, la casella viene visualizzata larga quanto l'elemento circostante.

• Se manca height, l'elemento verrà visualizzato alto quanto il contenuto che contiene.

Un esempio:

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 div#box {
    border: 1px solid; /* 2px sia a sinistra che a destra  */
    margin: 0 30px;    /* 30px sia a sinistra che a destra */
    background-color:#6600CC;
 }
 </style>
 </head>
 <body>
 <div id="box">PSD-Tutorials.de</div>
 </body>
 </html>



Nel browser appare nel seguente modo:

HTML & CSS per principianti (Parte 36): Il box model



L'elemento genitore dell'elemento div è il body. Pertanto l'elemento viene effettivamente visualizzato largo quanto l'elemento body. Per quanto riguarda l'altezza, essa dipende invece dal contenuto.

Tutto a zero

Ogni browser possiede un foglio di stile integrato. In questi fogli di stile sono definiti alcuni valori predefiniti. Questo vale ad esempio per padding e margin. Purtroppo questi valori predefiniti variano tra i diversi browser. Questo aspetto rende difficile ottenere risultati identici nei vari browser in relazione al box model, tra gli altri. Pertanto è consigliabile impostare i margini predefiniti dei browser a zero. Questo può essere fatto nel seguente modo:

* { padding: 0; margin: 0; }



Aggiungete questa riga all'inizio del vostro foglio di stile. In questo modo potrete iniziare a posizionare le caselle nei punti desiderati.

Tipo di casella

Come un elemento viene effettivamente visualizzato e come influisce sugli altri elementi dipende dal tipo di elemento. In effetti, la specifica CSS distingue tra elementi block e elementi inline. (Ci sono altri tipi che verranno tralasciati in questo punto in quanto giocano un ruolo secondario).

Gli elementi block generano sempre una nuova riga. Gli elementi successivi iniziano anch'essi in una nuova riga. Gli elementi block tipici sono ad esempio p, div, h1, ul ecc. Per questi elementi valgono le proprietà già menzionate: margine esterno, padding, altezza, larghezza e bordo.

<h1>Digital Painting & Matte Painting: Definire la struttura dell'immagine</h1>
<p>Modulo 2 - Parte 2: Un'immagine è sempre un insieme. Tuttavia è importante sempre pensare a dove lo spettatore dovrebbe guardare per primo.</p>

Guardando il risultato nel browser, si può notare che h1 e p generano ciascuno una riga separata.

HTML & CSS per principianti (Parte 36): Il modello a box



Gli elementi inline, al contrario, non generano un paragrafo separato, ma vengono visualizzati nel flusso normale del testo. Gli elementi inline tipici sono span, em, strong, img, br ecc. Per gli elementi inline non vengono considerati margini esterni verticali né indicazioni di larghezza e altezza.

<h1><em>Digital Painting & Matte Painting</em>: Definire la struttura dell'immagine</h1>

<p>Modulo 2 - Parte due: <strong>Un'immagine è sempre un insieme</strong>. Tuttavia è importante sempre pensare a dove lo spettatore dovrebbe guardare per primo.</p>

E anche qui uno sguardo al risultato:

HTML & CSS per principianti (parte 36): Il modello di box



Ora potete trasformare gli elementi che sono di natura blocco in elementi di tipo inline.

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 h1 {
 background-color:#00CCFF;
 }
 </style>
 </head>
 <body>
 <h1>Digital Painting & Matte Painting</h1>
 <p>Modulo 2 - Parte 2: <em>Un'immagine è sempre un tutto</em>. Tuttavia è sempre necessario pensare a dove lo spettatore dovrebbe guardare per primo.</p>
 </body>
 </html>

Date un'occhiata al risultato nel browser.

HTML & CSS per principianti (Parte 36): Il modello di box



Il colore di sfondo dell'intestazione h1 segnala che l'elemento si estende per tutta la larghezza. La larghezza si basa sull'elemento genitore body.

Ora entra in gioco la proprietà display.

<!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>PSD-Tutorials.de</title>
 <style>
 h1 {
 display:inline;
 background-color:#00CCFF;
 }
 </style>
 </head>
 <body>
 <h1>Digital Painting & Matte Painting</h1>
 <p>Modulo 2 - Parte 2: <em>Un'immagine è sempre un tutto</em>. Tuttavia è sempre necessario pensare a dove lo spettatore dovrebbe guardare per primo.</p>
 </body>
 </html>



Con display: inline la larghezza dell'elemento cambia.

HTML & CSS per principianti (Parte 36): Il modello di box

In effetti, la larghezza dell'elemento si adatta ora al contenuto esistente. Qui c'è un elenco dei valori che possono essere assegnati a display:

none – non visualizzato

block – l'elemento viene visualizzato come un elemento di blocco, generando quindi una nuova riga.

inline – l'elemento viene visualizzato come un elemento inline, appare nel flusso di testo in esecuzione.

inline-block – esternamente si comporta come un blocco, per altezza, larghezza e margine esterno specificati. Tuttavia, ogni elemento rimane nel flusso di testo in esecuzione. Si tratta quindi di una combinazione di un elemento di blocco e di un elemento inline.

list-item – l'elemento viene mostrato come un elemento di blocco, ma ha inoltre un segno di elenco davanti ad esso.

run-in – genera un elemento di blocco o inline a seconda del contenuto.

table – funziona come l'elemento HTML table.

inline-table – funziona come l'elemento HTML table, ma in linea.

table-row – l'elemento contiene figli disposti uno accanto all'altro. Funziona come l'elemento HTML tr.

table-cell – l'elemento rappresenta una cella di tabella e funziona come gli elementi HTML th e td.

table-row-group – l'elemento contiene un gruppo di elementi con figli disposti uno accanto all'altro e funziona come l'elemento HTML tbody.

table-header-group – l'elemento contiene un gruppo di elementi con figli disposti uno accanto all'altro e funziona come l'elemento HTML thead.

table-footer-group – l'elemento contiene un gruppo di elementi con figli disposti uno accanto all'altro e funziona come l'elemento HTML tfoot.

table-column – con questo vengono descritte le proprietà delle celle di una colonna. table-column funziona come l'elemento col in HTML.

table-column-group – questo elemento contiene un gruppo di elementi attraverso cui vengono descritte le proprietà delle celle di una colonna. Funziona come l'elemento HTML colgroup.

table-caption – con questo viene definito il titolo della tabella. La proprietà funziona come l'elemento HTML caption.

Effettivamente, CSS offre opzioni di visualizzazione diverse per vari tipi di elementi. Queste svolgono un ruolo decisivo in relazione al posizionamento degli elementi. Maggiori dettagli nei prossimi tutorial.