http://www.html.it/pag/14235/posizionamento-degli-elementi/

La parte dei CSS relativa al posizionamento degli elementi è un argomento complesso, ma estremamente importante per le potenzialità che offre. Suddivideremo la trattazione in tre lezioni. Nella prima esamineremo la proprietà position e le diverse modalità di posizionamento. Nella seconda vedremo con quali proprietà è possibile posizionare con precisione gli elementi. Nella terza valuteremo alcune proprietà utili alla gestione di importanti aspetti visuali degli elementi posizionati.

La proprietà position

position è la proprietà fondamentale per la gestione della posizione degli elementi: determina la modalità di presentazione di un elemento sulla pagina. Si applica a tutti gli elementi e non è ereditata.

Sintassi ed esempi

selettore {position: valore;}

I valori con cui è possibile definire la modalità di posizionamento sono quattro:

  • static;
  • relative;
  • absolute;
  • fixed.

Ciascuno di questi valori merita un spiegazione approfondita da cui emergeranno i concetti di base che governano le regole sul posizionamento.

position: static

È il valore di default, quello predefinito per tutti gli elementi non posizionati secondo un altro metodo. Rappresenta la posizione normale che ciascuno di essi occupa nel flusso del documento.

position: relative

L’elemento viene posizionato relativamente al suo box contenitore. In questo caso il box contenitore è rappresentato dal posto che l’elemento avrebbe occupato nel normale flusso del documento. La posizione viene impostata con le proprietà top, left, bottom o right. Nel posizionamento relativo esse non indicano un punto preciso, ma l’ammontare dello spostamento in senso orizzontale e verticale rispetto al box contenitore.

In pratica, con il posizionamento relativo (position: relative;), si va a modificare la posizione naturale di un elemento traslandola attraverso l’uso di top, left, bottom o right. Un elemento posizionato relativamente non è rimosso dal flusso della pagina, ma solo spostato. In sostanza, un elemento posizionato relativamente è come se lasciasse una sorta di segnaposto nella posizione in cui naturalmente dovrebbe essere.

Ora è importante fissare un concetto essenziale, ovvero come il posizionamento relativo venga effettuato tramite le proprietà top, left, bottom o right. Si potrebbe pensare che si riferiscano ad un sistema di coordinate, ma in realtà si tratta di vere e proprie traslazioni. La seguente immagine sarà utile a spiegare le cose:

Figura 1 – Schema di funzionamento del posizionamento relativo

screenshot

La metafora più semplice per comprendere il funzionamento è immaginare che sui quattro lati di un elemento posizionato relativamente ci siano quattro maniglie che si possono tirare o spingere: un valore positivo equivale a spingere, mentre un valore negativo equivale a tirare l’elemento.

Per esempio, se viene specificato left: 30px significa che l’elemento viene spinto da sinistra di 30 pixel. Dichiarando invece top: -20px è come se tirassimo l’elemento dal suo lato superiore, con il conseguente effetto di traslarlo verso l’alto di 20 pixel.

Con il posizionamento relativo andrebbero specificati al massimo uno o due valori tra top, left, bottom e right.

Esempi.

position: absolute

L’elemento, o meglio, il box dell’elemento, viene rimosso dal flusso del documento ed è posizionato in base ai valori forniti con le proprietà top, left, bottom o right.

Il posizionamento assoluto (position: absolute;) avviene sempre rispetto al box contenitore dell’elemento. Questo è rappresentato dal primo elemento antenato (ancestor) che abbia un posizionamento diverso da static.

Se tale elemento non esiste il posizionamento assoluto avviene in base all’elemento radice html, che in condizioni standard coincide con l’area del browser che contiene il documento e che ha inizio dall’angolo superiore sinistro di tale area. Un elemento posizionato in modo assoluto scorre insieme al resto del documento.

Il modo pi semplice per posizionare assolutamente un elemento rispetto ad un altro, consiste nel dichiarare per quest’ultimo un posizionamento relativo senza coordinate e nel dichiarare position: absolute per il primo con le coordinate:

#box-1 {position: relative;}
#box-2 {
 position: absolute;
 top: 0;
 left: 20px
}

Un elemento posizionato assolutamente è di default reso block-level, indipendentemente dalla sua natura iniziale. È come se, insieme a position: absolute dichiarassimo ogni volta implicitamente display: block. Il fatto che tutti gli elementi posizionati assolutamente sono promossi a elementi block-level significa in sostanza che è possibile attribuire loro dimensioni esplicite. Non solo è possibile, ma è consigliabile impostare quantomeno una larghezza.

Per quanto riguarda le proprietà top, left, bottom o right, si potrebbe pensare che questi valori siano da intendersi come delle coordinate. In realtà non è proprio così, ed è più facile pensare i valori che queste proprietà possono assumere come vere distanze. Un’immagine aiuterà a capire il concetto:

Figura 2 – Schema di funzionamento del posizionamento assoluto

screenshot

Nell’immagine sopra, il riquadro rosa è il blocco contenitore dell’elemento posizionato assolutamente, in azzurro. Vengono evidenziate visivamente le quattro proprietà, che rappresentano ciascuna la distanza tra i due lati concordi dell’elemento posizionato assolutamente e il suo blocco contenitore. Per esempio, top rappresenta la distanza tra il lato superiore dell’elemento posizionato assolutamente e quello del suo blocco contenitore.

Per posizionare assolutamente un elemento, è possibile specificare da una a quattro tra le proprietà top, right, bottom e left. Tipicamente, però, se ne dichiarano due (o una sola): tre o quattro valori hanno l’effetto di dare conflitti o modificare le dimensioni dell’elemento posizionato assolutamente.

Esempi.

position: fixed

Usando questo valore, il box dell’elemento viene, come per absolute, sottratto al normale flusso del documento. La differenza sta nel fatto che per fixed il box contenitore è sempre la cosiddetta viewport. Con questo termine si intende la finestra principale del browser, ovvero l’area del contenuto. Altra differenza fondamentale: un box posizionato con fixed non scorre con il resto del documento. Rimane, appunto, fisso al suo posto.

Esempi.

Approfondimenti

20 Gestione delle dimensioni: altezza

Height definisce la distanza tra il bordo superiore e quello inferiore di un elemento. Non è ereditata

selettore {height: valore;}

Luso va sempre valutato con attenzione, Il comportamento dei vari browser è al riguardo notevolmente diverso

molte volte si può ottenere lo stesso risultato visivo desiderato usando proprietà come padding e margin

div {height: 250px;} p.blocco {height: 50%;}

Usando il valore auto per overflow viene aggiunta una scrollbar per scorrere il contenuto.

si applica a tutti gli elementi tranne

  • colonne di tabelle

  • elementi inline non rimpiazzati

  • un valore numerico con unità di misura.

  • un valore in percentuale. Il valore in percentuale si riferisce sempre all'altezza del blocco contenitore, purché esso abbia un'altezza esplicitamente dichiarata. Diversamente, la percentuale viene interpretata come auto.

  • auto. L'altezza sarà quella determinata dal contenuto.

Overflow gestire il contenuto che superi i limiti imposti con height. Si applica a tutti gli elementi blocco e non è ereditata.

selettore {overflow : valore;}

div {overflow: auto;}

#div4 {
height: 60px;
background: Silver;
overflow: auto;
}

viene aggiunta una scrollbar per scorrere il contenuto

  • visible. Valore iniziale. Il contenuto eccedente rimane visibile (con i problemi visti sopra).

  • hidden. Il contenuto eccedente non viene mostrato.

  • scroll. Il browser crea barre di scorrimento che consentono di fruire del contenuto eccedente.

  • auto. Il browser tratta il contenuto eccedente secondo le sue impostazioni predefinite. Di norma dovrebbe mostrare una barra di scorrimento laterale.

min-height Imposta un'altezza minima per un elemento - Non è ereditata e non è supportata da Explorer Win

selettore {min-height: valore;}

div {min-height: 200px;}

  • un valore numerico con unità di misura.

  • un valore in percentuale

max-height La proprietà max-height serve a impostare l'altezza massima di un elemento

selettore {max-height: valore;}

div {max-height: 400px;}

  • none. Valore iniziale. L'altezza dell'elemento non è limitata.

  • un valore numerico con unità di misura.

  • un valore in percentuale

 

21 Gestione delle dimensioni: larghezza

width

Larghezza del box=

margine sinistro + bordo sinistro + padding sinistro + area del contenuto + padding destro + bordo destro + margine destro

larghezza dell'area del contenuto: width

selettore {width: valore;}

La proprietà width non è ereditata.

p {width: 90px;}

div.box {width: 50%;}

Explorer fino alla versione 5.5 interpreta male il concetto di width

  • auto. Valore di default. Se non si impostano margini, bordi e padding la larghezza dell'elemento sarà uguale all'area del contenuto dell'elemento contenitore.

  • un valore numerico con unità di misura.

  • un valore in percentuale. La larghezza sarà calcolata rispetto a quella dell'elemento contenitore.

min-width

Imposta la larghezza minima di un elemento. Si applica a tutti gli elementi tranne che a quelli in linea non rimpiazzati e agli elementi di tabelle. Proprietà non supportata da Internet Explorer e non ereditata

selettore { min-width: valore; }

div { min-width: 400px; }

  • un valore numerico con unità di misura.

  • un valore in percentuale. La larghezza sarà come minimo quella espressa dalla percentuale riferita alla larghezza dell'elemento contenitore.

max-width Imposta la larghezza massima di un elemento. Non è ereditata

selettore { max-width: valore; }

  • none. Valore di default. Non c'è un limite per larghezza dell'elemento.

  • un valore numerico con unità di misura.

  • un valore in percentuale

 

22 I Margini la distanza tra il bordo di un elemento e gli elementi adiacenti

margin-bottom Definisce la distanza tra il lato inferiore di un elemento e gli elementi adiacenti. Si applica a tutti gli elementi e non è ereditata.

Ricordiamo che se per un elemento si imposta un margine inferiore ed esso si trova sopra ad un altro elemento che abbia impostato un margine superiore, la distanza tra i due sarà quella maggiore e non data dalla somma delle due proprietà (meccanismo del margin collapsing).

p {margin-bottom: 10px;}
div.box {margin-bottom: 20%;}

  • un valore numerico con unità di misura. Il valore è espresso in termini assoluti.

  • un valore in percentuale. Il valore è calcolato come percentuale rispetto alla larghezza (width) del blocco contenitore.

  • auto. E' quasi sempre corrispondente a 0.

margin-left Definisce la distanza tra il lato sinistro di un elemento e gli elementi adiacenti. Si applica a tutti gli elementi e non è ereditata

h1 {margin-left: 10%;}
img {margin-left: 20px;}

  • un valore numerico con unità di misura. Il valore è espresso in termini assoluti.

  • un valore in percentuale. Il valore è calcolato come percentuale rispetto alla larghezza (width) del blocco contenitore.

  • auto. E' quasi sempre corrispondente a 0.

margin-top Definisce la distanza tra il lato superiore di un elemento e gli elementi adiacenti. Si applica a tutti gli elementi e non è ereditata

p.box {margin-top: 10%;}

img {margin-top: 20px;}

  • un valore numerico con unità di misura.

  • un valore in percentuale.

  • auto.

margin-right Definisce la distanza tra il lato destro di un elemento e gli elementi adiacenti. Si applica a tutti gli elementi e non è ereditata

h1 {margin-right: 10%;}
img {margin-right: 20px;}

  • un valore numerico con unità di misura.

  • un valore in percentuale.

  • auto.

margin E' una proprietà a sintassi abbreviata. Con essa è possibile specificare i valori per tutti e quattro i lati di un elemento. Si applica a tutti gli elementi e non è ereditata

div {margin: 10px 15px 10px 20px;}

L'ordine di lettura va inteso in senso orario. Per cui: il primo valore si riferisce al lato superiore, il secondo a quello destro, il terzo al lato inferiore, il quarto a quello sinistro

valore auto per i lati sinistro e destro è quello che consente di centrare in tal modo un elemento rispetto alla pagina o al box contenitore (no su explorer5)

p {margin: 20px 10px;}
div {margin: 20px;}
h1 {margin: 10px auto;}

Valori

  • un valore numerico con unità di misura.

  • un valore in percentuale.

  • auto. Per la proprietà margin il valore auto significa che la distanza sarà automaticamente calcolata rispetto alla larghezza dell'elemento contenitore.

  • se si usano tre valori, il primo si riferisce al margine superiore, il secondo a quelli sinistro e destro, il terzo a quello inferiore

  • se si usano due valori, il primo si riferisce ai lati superiore e inferiore, il secondo al sinistro e al destro

  • se si usa un solo valore, un uguale distanza sarà ai quattro lati

 

23 Il Padding

padding-bottom

Imposta l'ampiezza del padding sul lato inferiore di un elemento. Si applica a tutti gli elementi e non è ereditata

p.box {padding-bottom: 10px;}

  • un valore numerico con unità di misura. Il valore è espresso in termini assoluti.

  • un valore in percentuale. Il valore è calcolato come percentuale rispetto alla larghezza (width) del blocco contenitore.

padding-left Imposta l'ampiezza del padding sul lato sinistro di un elemento. Si applica a tutti gli elementi e non è ereditata

p {padding-left: 10%;}

  • un valore numerico con unità di misura.

  • un valore in percentuale.

padding-top Imposta l'ampiezza del padding sul lato superiore di un elemento. Si applica a tutti gli elementi e non è ereditata

h1 {padding-top: 10px;

  • un valore numerico con unità di misura.

  • un valore in percentuale.

padding-right Imposta l'ampiezza del padding sul lato destro di un elemento. Si applica a tutti gli elementi e non è ereditata

p.box {padding-right: 10px;}

  • un valore numerico con unità di misura.

  • un valore in percentuale.

Padding Proprietà a sintassi abbreviata. Serve a impostare i valori del padding per tutti e quattro i lati di un elemento

p {padding: 10px 20px;}
div {padding: 10%;}

  • un elenco di valori numerici con unità di misura.

  • un elenco di valori in percentuale.

Eliminare il margine più o meno ampio tra il bordo della finestra e l'area del contenuto.In HTML

body {
margin: 0px;
padding: 0px; }

 

24 I Bordi

Definire lo stile di un singolo bordo

Sintassi (con proprietà singole)

selettore {
border-<lato>-color: <valore>;
border-<lato>-style: <valore>;
border-<lato>-width: <valore>;
}

Sintassi (abbreviata)

selettore { border-<lato>: <valore width> <valore style> <valore color>; }

sostituite a <lato> uno degli indicatori dei quattro lati: top, right, bottom o left.

div {
border-left-color: black;
border-left-style: solid;
border-left-width: 1px;
}

Molto più comodo scrivere così:

div {border-left: 1px solid black;}

  1. il colore (color)

  • un qualsiasi colore

  • la parola chiave inherit

  1. lo stile (style)

  • none. L'elemento non presenta alcun bordo e lo spessore equivale a 0.

  • hidden. Equivalente a none

  • dotted

  • dashed

  • solid

  • double.

  • groove

  • ridge

  • inset

  • outset

  1. lo spessore (width)

  • un valore numerico con unità di misura

  • thin. Bordo sottile.

  • medium. Bordo di medio spessore.

  • thick. Bordo di largo spessore.

Definire lo stile dei quattro bordi

selettore {
border-width: <valori>;
border-style: <valori>;
border-color: <valori>;
}

Per ciascuna di queste proprietà è possibile definire da uno a quattro valori, uno per lato

top, right, bottom, left

div {
border-width: 1px 2px 1px 2px;
border-style: solid;
border-color: black red black red;
}

Usare la proprietà border

selettore {border: <valore spessore> <valore stile> <valore colore>;}

div {border: 2px solid black;}

possiamo definire con una sola regola le impostazioni per i quattro bordi perché i quattro bordi abbiano tutti lo stesso colore, lo stesso stile e lo stesso spessore.

 

 

 

 

18 Gestione del testo: proprietà di base

  • il font da usare

  • la sua dimensione

  • la sua consistenza

  • l'interlinea tra i paragrafi

  • l'allineamento del testo

  • la sua decorazione (sottolineature e simili)

font-family

La proprietà font-family serve a impostare il tipo di carattere di una qualunque porzione di testo. Si applica a tutti gli elementi ed è ereditata.

consente all'autore di impostare nei CSS non un font singolo e unico, ma un elenco di caratteri alternativi

p {font-family: arial, Verdana, sans-serif;}

inserire alla fine l'indicazione di una famiglia generica. Esse sono cinque: (tra parentesi riportiamo i caratteri predefiniti su ciascuna sui sistemi Windows)

  • serif (Times New Roman)

  • sans-serif (arial)

  • cursive (Comic Sans)

  • fantasy (Allegro BT)

  • monospace (Courier)

I nomi dei font della lista vanno separati dalla virgola. I caratteri con nomi composti da più parole vanno inseriti tra virgolette

selettore {font-family: <font 1>, <font2>, ....,<famiglia generica>;}

div {font-family: Georgia, "Times New Roman", serif;}

font-size definisce le dimensioni. Applicabile a tutti gli elementi ed ereditata

selettore { font-size: <valore>; }

Valori dimensioni in senso assoluto o relativo .

Dimensione relativa significa che essa viene calcolata in base alla dimensione del testo dell'elemento parente

p {font-size: 12px;}
div.titolo {font-size: 50%;}
#div1 {font-size: large;}
h2 {font-size: 1.2em;}

Sono valori assoluti:

  • le sette parole chiave xx-small, x-small, small, medium, large, x-large, xx-large

  • quelli espressi con le seguenti unità di misura: pixel (px), centimetri (cm), millimetri (mm), punti (pt), picas (pc), pollici (in), x-height(ex). Di tutte queste unità le uniche proponibili per il testo sono punti e pixel. Si consiglia di usare la prima solo per CSS destinati alla stampa.

Sono valori relativi:

  • le parole chiave smaller e larger

  • quelli espressi in em (em-height)

  • quelli espressi in percentuale

font-weight Serve a definire la consistenza o "peso" visivo del testo. Si applica a tutti gli elementi ed è ereditata. - è ereditata

selettore {font-weight: <valore>;}

Valori:

p {font-weight: 900;}
div {font-weight: bold;}

  • valori numerici 100 - 200 - 300 - 400 - 500 - 600 - 700 - 800 - 900 ordinati in senso crescente (dal leggero al pesante)

  • normal. Valore di default. E' l'aspetto normale del font ed equivale al valore 400

  • bold. Il carattere acquista l'aspetto che definiamo in genere grassetto. Equivale a 700

  • bolder. Misura relativa. Serve a specificare che una determinata porzione di testo dovrà apparire più pesante rispetto al testo dell'elemento parente

  • lighter. Misura relativa. Il testo sarà più leggero di quello dell'elemento parente

font-style Imposta le caratteristiche del testo in base ad uno di questi tre valori:

selettore {font-style: <valore>;}

p {font-style: italic;}

  • normal: il testo mantiene il suo aspetto normale

  • italic: formatta il testo in corsivo

  • oblique: praticamente simile a italic

La proprietà si applica a tutti gli elementi ed è ereditata

Line-height sistema di interlinea - serve a definire l'altezza di una riga di testo all'interno di un elemento blocco - è ereditata

selettore {line-height: <valore>;}

non usare mai la percentuale

p {line-height: 1.5;}
body {line-height: 15px;}

  • normal. Il browser separerà le righe con uno spazio ritenuto "ragionevole". Dovrebbe corrispondere a un valore numerico compreso tra 1 e 1.2

  • valore numerico. Usando valori numerici tipo 1.2, 1.3, 1.5 si ottiene questo risultato: l'altezza della riga sarà uguale alla dimensione del font moltiplicata per questo valore.

  • un valore numerico con unità di misura. L'altezza della riga sarà uguale alla dimensione specificata.

  • percentuale. L'altezza della riga viene calcolata come una percentuale della dimensione del font.

font proprietà a sintassi abbreviata che serve a impostare con una sola dichiarazione tutte le principali caratteristiche del testo

selettore {font: <valori>;}

singole proprietà non vanno separati da virgole, i nomi dei font costituiti da più parole vanno racchiusi tra virgolette la dichiarazione dovrebbe sempre finire con la coppia font-size > font-family

proprietà line-height si imposta invece così, facendo seguire il suo valore a quello di font-size e separando i due con una slash font-size/line-height

p {font: bold 12px/1.5 Georgia, "Times New Roman", serif;}

abbiamo definito: font-weight, dimensione/ interlinea, font-family

  • font-family

  • font-size

  • line-height

  • font-weight

  • font.-style

  • font-variant

  • font di sistema

Usare i font di sistema

è possibile impostare, invece della normale lista di caratteri, un valore corrispondente ai cosiddetti font di sistema.

Se si intende usare uno dei font di sistema non è necessario specificare altri valori oltre alla keyword

p {font: menu;}
div {font: status-bar;}

  1. caption: carattere usato per pulsanti e menu a tendina

  2. icon: carattere usato per la descrizione delle icone

  3. menu: carattere usato nei menu delle varie finestre

  4. message-box: usato per i gli alert e gli altri box con messaggi di sistema

  5. small-caption: carattere per i controlli più piccoli

  6. status-bar: il font usato per la barra di stato

Allinerare il testo:

Text-align La proprietà serve a impostare l'allineamento del testo. E' ereditata e si applica a tutti gli elementi.

selettore { text-align: <valore>; }

  • left. Allinea il testo a sinistra

  • right. Allinea il testo a destra

  • center. Centra il testo

  • justify. Giustifica il testo

Text-decoration Imposta particolari decorazioni e stili per il testo. Ereditabile e applicabile a tutti gli elementi

p {text-decoration: <valore> o <valori>;}

p {text-decoration: none;}
a {text-decoration: underline;

  • none. Il testo non avrà alcuna decorazione particolare

  • underline. Il testo sarà sottolineato

  • overline Il testo avrà una linea superiore

  • line-through. Il testo sarà attraversato da una linea orizzontale al centro

 

19 Gestione del testo: proprietà avanzate

font-size-adjust migliorare la leggibilità di un carattere alternativo tra quelli indicati con la proprietà font-family - è ereditata

selettore {font-size-adjust: <valore>;}

p {font-size-adjust: 0.50;}

  • none. Non avviene nessun aggiustamento. Valore di default.

  • valore numerico. Indica il fattore di aggiustamento del font.

supportata solo dai browser Gecko-based (Mozilla, Netscape 6/7)

font-stretch Consente di rendere il testo più o meno espanso del normale. Proprietà non supportata da nessun browser. Ereditata

selettore {font-stretch: <valore>;}

p {font-stretch: ultra-expanded;}

  • normal. Valore di default.

  • parole chiaveche indicano diversi gradi di espansione del testo.

ultra-expanded, extra-expanded, expanded, semi-expanded, normal, semi-condensed, condensed, extra-condensed, ultra-condensed - con funzione relativa: wider e narrower

font-variant Consente di trasformare il testo in maiuscoletto – ereditata

selettore {font-variant: <valore>;}

  • normal. Il testo ha il suo aspetto normale. Valore di default.

  • small-caps. trasforma il testo in maiuscoletto.

h2 {font-variant: small-caps;}

text-indent Definisce l'indentazione della prima riga in ogni elemento contenente del testo. Proprietà ben supportata ed ereditata

selettore {text-indent: <valore>;}

  • un valore numerico con unità di misura

  • un valore in percentuale

il valore con unità di misura è assoluto, quello in percentuale è relativo

p {text-indent: 10px;}
div.contenuto {text-indent: 10%;}

text-shadow Crea un'ombreggiatura per il testo specificato. La proprietà non è supportata da nessun browser e non è ereditata

selettore {text-shadow: <valore colore> <valore x> <valore y> <valore blur>;}

h1 {text shadow: blue 2px 2px 3px;}

text-transform La proprietà serve a cambiare gli attributi del testo relativamente a tre aspetti: maiuscolo, minuscolo, prima lettera maiuscola.

selettore {text-transform: <valore>;}

  • none. Valore di default. Nessuna trasformazine viene applicata.

  • capitalize. La prima lettera di ogni parola viene trasformata in maiuscolo.

  • uppercase. Tutto il testo è maiuscolo.

  • lowercase. Tutto il testo è minuscolo.

white-space Questa proprietà serve a gestire il trattamento degli spazi bianchi presenti in un elemento. E' ereditata

selettore {white-space: <valore>;}

p {white-space: pre;}
div {white-space: nowrap;}

  • none. Valore di default. Gli spazi bianchi sono ridotti a uno.

  • pre. Gli spazi bianchi e l'inizio di nuove righe sono mantenuti così come sono nel codice

  • nowrap. Gli spazi bianchi sono ridotti a uno e l'andata a capo è disabilitata

letter-spacing Aumenta lo spazio tra le lettere di una parola. Proprietà ben supportata ed ereditata

selettore { letter-spacing: <valore>; }

h1 { letter-spacing: 5px; }

  • normal. Valore di default. Le lettere mantengono il loro spazio normale.

  • un valore numerico con unità di misura. Le lettere saranno spaziate secondo la distanza impostata.

word-spacing Serve ad aumentare lo spazio tra le parole comprese in un elemento. Proprietà ben supportata ed ereditata

selettore { word-spacing: <valore>; }

p { word-spacing: 1.2em; }
div.testo { word-spacing: 5px; }

  • normal. Valore di default. Le parole mantengono il loro spazio normale.

  • un valore numerico con unità di misura. Le parole saranno spaziate secondo la distanza impostata.

 

 

 

 

15 Il box model

  • l'area del contenuto. È la zona in cui trova spazio il contenuto vero e proprio, testo, immagini, animazioni Flash. Le dimensioni orizzontali dell'area possono essere modificate con la proprietà width. Quelle verticali con height.

  • il padding. È uno spazio vuoto che può essere creato tra l'area del contenuto e il bordo dell'elemento. Come si vede dalla figura, se si imposta un colore di sfondo per un elemento questo si estende dall'area del contenuto alla zona di padding.

  • il bordo. È una linea di dimensione, stile e colore variabile che circonda la zona del padding e l'area del contenuto.

  • il margine. È uno spazio di dimensioni variabili che separa un dato elemento da quelli adiacenti.

Larghezza del box

larghezza dell'area del contenuto: width

larghezza effettiva di un box:

margine sinistro + bordo sinistro + padding sinistro + area del contenuto + padding destro + bordo destro + margine destro

Larghezza ed elemento contenitore

Se non si imposta alcun valore per la proprietà width o se il valore usato è auto la larghezza di un box è uguale a quella dell'area del contenuto dell'elemento contenitore. Quest'ultimo è l'elemento che racchiude il box

Uso del valore auto

Solo per tre proprietà è possibile impostare il valore auto: margini, altezza e larghezza (width).

Solo i margini possono avere valori negativi

 


16 Gestione del colore

black | navy | blue | maroon | purple | green | red | teal |

fuchsia | olive | gray | lime | aqua | silver | yellow | white

#RRGGBB

#CC0000 Il codice sopra rappresenta una tonalità di rosso.

codici esadecimali. In essi, le prime due lettere (o numeri) corrispondono ai valori per il colore rosso (RED), la seconda coppia fa riferimento al verde (GREEN), l'ultima al blue (BLUE).

#RGB

#C00 Il codice sopra rappresenta una tonalità di rosso

codici esadecimali i valori per il rosso, il verde e il blue sono definiti solo dalla prima lettera o numero

rgb(rrr%, ggg%, bbb%)

rgb(0%, 0%, 0%) nero

rgb(100%, 100%, 100%) bianco

usare per i tre elementi base del sistema RGB una lista di valori in percentuale separati da una virgola

rgb(rrr, ggg, bbb)

rgb(0, 0, 0,) nero

Si definiscono i valori di rosso, verde e blue con tre valori compresi compresi, rispettivamente, tra 0 e 255

 

Per ogni elemento si possono definire almeno tre colori:

il colore di primo piano

foreground color

il colore di sfondo

background color

il colore del bordo

border color

 

La proprietà color selettore { color: <valore> }

La proprietà color definisce esclusivamente:

  • il colore di primo piano, ovvero quello del testo

  • il colore del bordo di un elemento quando non si imposti esplicitamente quest'ultimo con le proprietà border o border-color

La proprietà color si applica a tutti gli elementi ed è ereditata

I valori possibili sono:

  • qualunque valore di un colore definito con i metodi visti sopra

  • la parola chiave inherit. Con essa si dice esplicitamente al browser di ereditare le impostazioni definite per l'elemento parente.

p{color: black; background-color: white; }

 

17 Gestione dello sfondo

background-color Definisce il colore di sfondo di un elemento. Questa proprietà non è ereditata

selettore {background-color: <valore>;}

Usando transparent come valore un elemento avrà come colore quello dell'elemento parente

Valori

  • un qualunque colore

  • la parola chiave transparent

background-image Definisce l'URL di un'immagine da usare come sfondo di un elemento. Questa proprietà non è ereditata

selettore { background-image: url(/<valore>); }

Usare none equivale a non impostare la proprietà: nessuna immagine verrà applicata come sfondo

Valori

  • un URL assoluto o relativo che punti ad un'immagine

  • la parola chiave none. Valore di default.

background-repeat Essa consente di definire la direzione in cui l'immagine di sfondo viene ripetuta. Proprietà non ereditata

selettore {background-repeat: <valore>;}

div { background-image: url(/sfondo.gif); background-repeat: repeat-x; }

Valori

  • repeat. L'immagine viene ripetuta in orizzontale e verticale. E' il comportamento standard.

  • repeat-x. L'immagine viene ripetuta solo in orizzontale.

  • repeat-y. L'immagine viene ripetuta solo in verticale.

  • no-repeat. L'immagine non viene ripetuta.

background-attachment Con questa proprietà si imposta il comportamento dell'immagine di sfondo rispetto all'elemento cui è applicata e all'intera finestra del browser. Si decide, in pratica, se essa deve scorrere insieme al contenuto o se deve invece rimanere fissa. Proprietà non ereditata

selettore {background-attachment: <valore>;}

background-repeat: repeat-x;
background-attachment: fixed; }

Valori

  • scroll. L'immagine scorre con il resto del documento quando si fa lo scrolling della pagina)

  • fixed. L'immagine rimane fissa mentre il documento scorre

background-position Definisce il punto in cui verrà piazzata un'immagine di sfondo non ripetuta o da dove inizierà la ripetizione di una ripetuta. Si applica solo agli elementi blocco o rimpiazzati. Attenzione alla compatibilità e alla resa, non omogeena, tra i vari browser. Proprietà non ereditata.

selettore {background-position: <valore> o <valori>;}

body {
background-image: url(/back_400.gif);
background-repeat: no-repeat;
background-position: center center;
}

I valori possibili sono diversi. Tutti però definiscono le coordinate di un punto sull'asse verticale e su quello orizzontale. Ciò può avvenire nei seguenti modi:

  • con valori in percentuale

  • con valori espressi con unità di misura

  • con le parole chiave top, left, bottom, right

background E veniamo alla proprietà background. Con essa, ricordiamolo, possiamo definire in un colpo solo tutti gli aspetti dello sfondo. Per essere valida, la dichiarazione non deve contenere necessariamente riferimenti a tutte le proprietà viste finora, ma deve contenere almeno la definizione del colore di sfondo

selettore {background: background-color background-image background-repeat background-attachment background-position;}

I valori non vanno separati da virgole. L'ordine non è importante, ma quello dato è il più logico e andrebbe rispettato: si va in ordine di importanza

body {
background: white url(sfondo.gif) repeat-x fixed;
}