GUIDA AI CSS
CASCADE STYLE SHEETS

 
http://www.risorse.net/css/interattivicss.asp

<1> Css: cominciamo
<2> Unità di misura
<3> Incorporare i Css nei documenti Html
<4> I fogli di stile in linea
<5> I fogli di stile incorporati
<6> I fogli di stile esterni
<7> Stile ed effetti su testo
<8> Effetti interattivi sui links
<9> Definire lo sfondo e le proprietà in un documento
<10> Specificare una linea grafica uniforme al sito
<11> Posizionare gli elementi
<12> Le classi
<13> Effetti sul cursore
<14> Stampa di un documento

<1> Css: cominciamo

Il Web, ai tempi della sua nascita, doveva preoccuparsi maggiormente ai contenuti che portava, piuttosto che allo stile con il quale esso veniva presentato.
L'Html vista la sua facilita', era, e ancora e', un partner fondamentale per creare qualunque Web site. E proprio la sua forza maggiore, e' diventata, in questo ultimo periodo, il suo difetto piu' fastidioso.
Quando infatti, il grande pubblico ha cominciato ad accorgersi dell'esistenza della rete, le limitazioni di Html sono diventate una sorta di frustazione per chi, soprattutto professionista del web publishing, si e' dovuto trovare di fronte a limiti statici, aggirabili solamente con espedienti di natura tutt'altro che stilistica, come le tabelle per il layout, le immagini bianche per gli spazi vuoti, la conversione del testo in immagini e quant'altro.
Questi ingombranti aggiustamenti, sono sfociati nella nascita di estensioni di Html, quali Javascript, Vb Script e infine i Cascade Style Sheets, che in italiano significa Fogli di stile a cascata. A cascata, perche' esistono delle regole gerarchiche tra i vari Css (l'acronimo usato per richiamarli) incorporati in un documento.
Queste nuove tecnologie, hanno considerevolmente aumentato la complessita' delle pagine Web, pur rimandendo un limite di flessibilita' ancora notevole e comunque, soffrendo ancora di problemi di interoperabilita' e di barriere per le persone disabili.

All'inizio di questo primo passaggio dicevamo come, l'uso dei Css avesse finalmente aumentato lo stile delle pagine Web. Un normale documento Html infatti, unisce insieme contenuti, struttura e stile.
Proviamo infatti a richiamare una normale riga di testo con font verdana, grandezza 3 e colore blu.

<FONT FACE=VERDANA SIZE=3 COLOR=BLUE>Testo comune</FONT>

Come si puo' vedere, il contenuto (Testo comune) e' accluso allo stile (font, size e color). Se, volessimo modificare il font di un sito formato da 300 documenti, l'operazione, oltre che lunga, potrebbe risultare estenuante.
I Css, pongono rimedio a questo problema perche' separano lo stile dal contenuto.

Fin qui tutto bene, il problema e' dato dal fatto che solo l'ultima generazione dei browser e' compatibile con i Css, e questo potrebbe essere uno dei talloni di achille di questa nuova tecnologia.
Infatti, se si entrasse in una pagina scritta grazie al contributo dei fogli di stile, con un browser non compatibile (quale Navigator 3), si vedrebbero i contenuti mostrati con le impostazioni di default del browser: sfondo bianco o grigio, testo nero con font Times New Roman e grandezza pari a 3.
Su questo inconveniente, consigliamo di soprassedere, per il semplice motivo che sia Explorer 4-5, sia Netscape 4, sono gratuiti e quindi, sono le persone meno al passo con i tempi che si devono aggiornare.
Un'ultima considerazione la meritano i browser pienamente compatibili con i Css. Nonostante siano stati approvati da il W3C (il consorzio per il Web), solo Explorer 4 e superiori ne sfruttano al meglio le capacita'. Navigator 4 e Explorer 3 invece ne interpretano solo una parte, mentre tutti gli altri, quali Navigator 3 e Opera 3.5, non ne apprezzano le potenzialita'.

<2> Unità di misura

A differenza di Html, che usa 3 soli sistemi di attribuzione delle grandezze (per il size di un font usa una unita' di misura che va da 1 a 7, per le tabelle invece o i pixel o le percentuali mentre per le immagini i pixel), i Css possono utilizzare varie grandezze, tutte definibili su qualsiasi elemento.
Prima di cominciare pero', dobbiamo distinguere categoricamente, i due grandi tipi di lunghezze: relative e assolute. Al primo gruppo, appartengono:

<3> Incorporare i Css nei documenti Html

Abbiamo appena visto i vantaggi e gli svantaggi dell'utilizzo dei Cascade Style Sheets.
La scelta o meno del loro utilizzo, e' naturalmente basata sul target dei propri utenti, anche se, lo ripetiamo, e' consigliabile utilizzarli e lasciare agli utenti meno tecnologici, il buon senso di aggiorarsi.
Comunque, per chi avesse deciso di farne uso, e' necessario, anzi indispensabile, sapere incorporare i fogli di stile nelle proprie pagine web.
Esistono tre metodi per richiamare i Css nei documenti Html:

<4> I fogli di stile in linea

I fogli di stile in linea, rappresentano una soluzione ottimale per chi volesse attribuire dello stile a uno solo o comunque pochi tags Html.
Non rappresentano infatti, la tanto agoniata divisione tra stile e contenuti. Nell'esempio che verra' mostrato qui sotto, verra' mostrato un tipico foglio di stile in linea:

<FONT STYLE="font-family:tahoma; font-size:10pt; color:green">Testo scritto grazie ai Css</FONT>

Come possiamo vedere, l'eloquente promiscuita' tra stile e contenuti e fin troppo visibile. Utilizzare normale sintassi Html, in questo caso sarebbe stato uguale, se non considerando il vantaggio della compatibilita' con i browser meno recenti. Ecco comunque lo stesso risultato ottenuto con comuni tag Html.

<FONT FACE=TAHOMA SIZE=2 COLOR=GREEN>Testo scritto grazie a Html</FONT>

Ecco i risultati dei due sorgenti a confronto.

Testo scritto grazie ai Css
Testo scritto grazie a Html

Con queste dimostrazioni, abbiamo capito che i Css in linea, negano tutto cio' che abbiamo detto nella prima puntata a proposito della separazione tra stile e contenuti.

<5> I fogli di stile incorporati

I fogli di stile incorporati rappresentano una via di mezzo tra i Css in linea e i Css esterni. I Cascade Style Sheets incorporati infatti, separano lo stile dai contenuti, ma, essendo acclusi ai tag <HEAD> e </HEAD>, non possono influenzare un intero sito web o anche solo piu' documenti.
Questi fogli di stile incorporati, come quelli esterni e a differenza di quelli in linea, racchiudono peculiarita' sintattiche che lo distinguono dal comune Html: l'insieme degli attributi e' racchiuso tra "{ }" (si ottegono su Windows premendo Shift+Ctrl+Alt+[ oppure Shift+Ctrl+Alt+]), per separare ogni attributo dal suo corrispettivo valore, e' usato il segno ":", in caso di piu' attributi, vengono separati da ";", gli attributi con piu' termini (come font-size) sono sperati da un "-".

Qui di seguito troverete un esempio di foglio di stile incorporato:

<HTML>
<HEAD>

<STYLE TYPE=text/css>
P { font-size:15px; font-family:verdana; color:green }
FONT { font-size:20px; font-family:arial; color:black }
</STYLE>

</HEAD>

<BODY>

<FONT>RISORSE.NET - scritto con i Css incorporati (di 20px, arial e nero)</FONT>

<BR>
<BR>

<P>Il sito italiano sulle ultime tecnologie per fare web (di 15px, verdana e verde)

</BODY>
</HTML>

Come si puo' vedere, i Css incorporati influiscono sui tag a cui fanno riferimento... in questo caso <P> e <FONT>.
Naturalmente nessuno ci vieta di assegnare altri fogli di stile a diversi tag, come <Hx>, <TD> o qualsiasi altro.
Se si volessero assegnare piu' valori a piu' proprieta', bastera' indicare nel Css:
P, TD { font-face: arial; font-size: 10pt }

In pratica, se volessimo unire tag che abbiano gli stessi valori, bastera' indicarli nello stesso foglio di stile, sperati da una virgola. Gli stessi valori invece, vengono separati da un punto e virgola. Questo, vale anche per i Css esterni.

In conclusione: l'attributo text/css del tag <STYLE> puo' essere omesso e riguarda il formato (MIME) del foglio di stile appena specificato. Sia Explorer che Netscape sono compatibili con questo formato. Un altro formato, e' text/jass e riguarda i Css in Javascript.

<6> I fogli di stile esterni

Questo tipo di fogli di stile, rispecchia pienamente la caratteristica dei Css di divedere lo stile dai contenuti. Essi infatti, sono depositati in un solo file con estensione .css e richiamati con una semplice riga di codice da tutti i documenti Html a cui fanno riferimento.
Inutile quindi sottolineare il vantaggio che se ne trae dal massiccio uso che se ne puo' fare. Con un'unica modifica, si potrebbe riflettere su tutto il sito il risultato di tale accorgimento.

Ma vediamo come creare un foglio di stile esterno:

<7> Stile ed effetti su testo

Grazie ai Css, e' possibile applicare dello stile al testo, o meglio ancora, degli effetti sui links ipertestuali. I famosi cambi di sottolineatura, colore e quant'altro ai collegamenti al momento di passarci sopra con il mouse, sono ottenuti grazie ai fogli di stile. Questi tipi di interazioni agli eventi dell'utente verranno trattati nel prossimo passaggio.
Come prima cosa pero', vediamo come usare i Cascade Style Sheets su comune testo.

Font family
E' l'equivalente dell'attributo FACE del tag <FONT> in HTML. Per attribuire piu' di un font a questo carattere (in modo che in assenza di uno il browser utilizzi il successivo) e' necessario separarli da una virgola e, se si intendesse usare un font composto da piu' termini (per es.: Times New Roman) bisognera' raggrupparli sotto le " ".
Ecco un esempio di CSS con l'attributo font-family.
<STYLE>
FONT { font-family:"times new roman", tahoma, arial }
</STYLE>

Font style
Come si puo' intuire dal nome, questo attributo garantisce dello stile al font. I diversi valori possono essere:


Font size
Imposta la grandezza del font, che, a differenza di Html, non soffre di alcun limite di grandezza e di precisione.
Un'altra differenza con Html, risiede nel fatto che invece di possedere una sola unita' di misura (da 1 a 7), i Css possono essere scelti tra varie unita' di misura 
I possibili valori sono:



Font weight
Come i tag <B> e <STRONG> in Html, questo attributo specifica lo spessore del font. I valori da utilizzare sono:



Font variant
Assegna uno stile tutto maiscolo al testo accluso al tag a cui questo CSS fa riferimento. I valori sono:

small-caps
Ecco un esempio:
<STYLE>
FONT { font-variant: small-caps }
</STYLE>

Font
In un'unica proprieta' un insieme di attributi. I valori sono gli stessi di: font-style, font-variant, font-weight e font-size.
Ecco un esempio:
<STYLE>
FONT { font: italic bold 10px/12px Times, Serif }
</STYLE>

Color
Imposta il colore al testo accluso al tag a cui si riferisce. E' lo stesso dell'attributo color del tag <font> nel comune Html.
<STYLE>
FONT { color:gray }
</STYLE>


Text decoration
All'inizio della puntata, avevamo lasciato un discorso a meta', quello degli effetti su links. L'attributo da usare e' text-decoration e puo' assumere svariati valori:

List style type
Indica il tipo di punteggiatura degli elementi contenuti in una lista. I valori che puo' assumere sono:

List style position
Indica dove deve essere posizionato il marcatore rispetto alla rispettiva voce della lista. I valori che puo' assumere sono:


List style image
Il comune marcatore viene sostituito da un'immagine. I possibili valori sono:



List style
Dichiara all'interno di una lista la punteggiatura, la posizione e l'immagine che identifica ciascun elemento. I possibili valori sono gli stessi di list style type e di list style position
<STYLE>
UL { list-style: circle inside }
</STYLE>


White space
Determina la gestione degli spazi all'interno di una pagina. I valori che puo' assumere sono:


Display
Nel contesto di una box indica come deve essere visualizzato un elemento. I valori che può assumere sono:

Utilizzando molto i fogli di stile, si potrebbe avere la tentazione di utilizzare un font atipico, che con molta probabilita' non sara' presente nel computer del client (l'utente che accede al sito). Normalmente, in caso di font insesistente, il browser utilizza il Times New Roman, carattere di default per tutti i pc. I Cascade Style Sheets invece permettono di installare, durante il caricamento della pagina, un particolare font, utilizzando la dicitura:

<STYLE>
@font-face { font-family:NomeFont; src:url(http://www.tuosito.it/nomefont.eot); }
</STYLE>

Tutti gli attributi e gli esempi che vi abbiamo appena mostrato, sono utilizzabili su tutto un documento (Css incorporati) o su un intero sito Web (Css esterni). Alcuni attributi pero', e consigliabile applicarli solo ad alcune porzioni di testo racchiuse in un certo tag (Css in linea).
Per esempio, l'attributo text-transform, a seconda del valore che assume, puo' rendere maiscucole tutte le lettere del testo, oppure solo le prime di ogni parola o ancora tutte minuscole.
Naturalmente, un attributo di questo genere non e' utilizzabile in un intero sito web, perche' ci potrebbe sempre essere la necessita' di utilizzare o meno una lettera maiuscola. Potrebbe pero' risultare utile nel caso in cui si avesse la necessita' di avere un blocco di testo maiuscolo, anche solo per evidenziarlo dal resto della pagina.
Vediamo dunque di analizzare questi restanti attributi per il testo.

Text transformation
Come abbiamo detto prima, varia i caps di un blocco di testo. I valori che puo' assumere sono:



Text identation
Il rientro, espresso in em o in pollici, che deve essere presente prima della parola che inizia il testo. I possibili valori sono:

Text align
Praticamente, rappresenta il normale allineamento presente anche in Html comune. I valori quindi variano tra:



Letter spacing
Lo spazio che deve esserci tra una lettera e la seguente. Puo' assumere anche valori negativi. I valori che puo' assumere sono:



Word spacing
Lo spazio che deve esserci tra una parola e la seguente. Puo' assumere anche valori negativi. I valori che puo' assumere sono:



Line height
E' lo spazio espresso in em o in percentuale tra un'interlinea e l'altra. I valori sono:



Vertical align
Modifica l'allineamento verticale di un oggetto rispetto al suo precedente. I valori sono:

<8> Effetti interattivi sui links

Nel passaggio precedente abbiamo visto tutti dei bellissimi stili, ma nessuno di essi era interattivo, ovvero non modificava in alcun modo a seconda delle azioni eseguite dall'utente.
I Css, come Javascript d'altronde, permette di interagire (anche se in maniera prettamente estetica) con gli eventi generati dal visitatore.
Tutti gli effetti che vedremo adesso hanno come oggetto gli hyperlink.

<9> Definire lo sfondo e le proprietà in un documento

Il successo grafico di un sito web, si identifica nel layout e nel background di tali pagine. Una prerogativa dei Css, e' infatti quella di poter predefinire il layout e lo sfondi di uno o piu' documenti Html.
Vediamo ora come definire tali proprieta' in una pagina web.

Background-color
Definisce un omogeneo colore di sfondo al documento. Questo comando, si puo' applicare anche a normale testo in modo da ottenere una evidenziatura di sfondo. Il codice da utilizzare e':
body { background-color: gray }


Background-image
Applica un'immagine di sfondo al documento. Anche in questo caso, e' possibile applicaere lo sfondo a un solo elemento.
body { background-image: url(http://nomeserver/nomeimg.gif) }


Background-repeat
Determina come l'immagine di sfondo deve essere riprodotta. I valori di questa proprieta' possono essere:

Background-position
Determina la posizione dell'immagine stabilendo le distanze del margine sinistro e del margine superiore. I valori che puo' assumere sono:

Background-attachment
Se specificata, l'immagine di sfondo non scorre insieme al documento. I valori sono:

Background
Per unire piu' proprieta' a un solo tag, si utilizza la dicitura background, per esempio:

body { background:gray url(http://tuosito.it/nomeimg.gif) norepeat }

<10> Specificare una linea grafica uniforme al sito

Come si spiegava nel passo dedicato ai background, il layout di un sito puo' risultare un punto essenziale per la realizzazione di un sito veramente professionale. I Css, possono aiutare i webmasters in tutto cio':

Right margin
Imposta il margine destro di un certo elemento. Se espresso in percentuale esso viene calcolato rispetto alla larghezza dell'elemento superiore. Sono ammessi anche valori negativi.
p { margin-right: 20% }

Left margin
Definisce il margine sinistro di un certo elemento. Se espresso in percentuale esso viene calcolato rispetto alla larghezza dell'elemento superiore. Sono ammessi anche valori negativi.
p { margin-left: 30% }

Top margin
Specifica il margine superiore di un certo elemento. Se espresso in percentuale esso viene calcolato rispetto alla larghezza dell'elemento superiore. Sono ammessi anche valori negativi.
p { margin-top: 40% }

Bottom margin
Attribuisce il margine inferiore a un certo elemento. Se espresso in percentuale esso viene calcolato rispetto alla larghezza dell'elemento superiore. Sono ammessi anche valori negativi.
p { margin-bottom: 10px }

Margin
Definisce tutti i margini di un elemento. Se espresso in percentuale esso viene calcolato rispetto alla larghezza dell'elemento superiore. Sono ammessi anche valori negativi.
Se specificati 4 valori, si intendono rispettivamente: il margine superiore, destro, inferiore, sinistro. Se ne vengono attribuiti solo 2 o 3, i valori omessi erediteranno il valore del lato a essi opposto. Se altresi' ne venisse indicato uno solo, tale valore varra' per tutti e quattro i lati.
p { margin: 5pt 7pt }

Right padding
Imposta lo spazio necessario tra il lato destro di una box e l'elemento in essa contenuta. In questo caso pero', non sono permessi valori negativi.
p { padding-right: 2ex }

Left padding
Definisce lo spazio necessario tra il lato sinistro di una box e l'elemento in essa contenuta. In questo caso pero', non sono permessi valori negativi.
p { padding-left: 5% }

Top padding
Definisce lo spazio necessario tra il lato superiore di una box e l'elemento in essa contenuta. In questo caso pero', non sono permessi valori negativi.
p { padding-top: 10em }

Bottom padding
Definisce lo spazio necessario tra il lato inferiore di una box e l'elemento in essa contenuta. In questo caso pero', non sono permessi valori negativi.
p { padding-bottom: 2px }

Padding
Definisce lo spazio necessario tra tutti i lati di una box e l'elemento in essa contenuta. In questo caso pero', non sono permessi valori negativi. Se specificati 4 valori, si intendono rispettivamente: il margine superiore, destro, inferiore, sinistro. Se ne vengono attribuiti solo 2 o 3, i valori omessi erediteranno il valore del lato a essi opposto. Se altresi' ne venisse indicato uno solo, tale valore varra' per tutti e quattro i lati.
p { padding: 2px 6px 4 px 5px }

Border left width
Imposta lo spessore del bordo sinistro. Non sono ammessi valori negativi. I valori che puo' assumere sono:

Border right width
Imposta lo spessore del bordo destro. Non sono ammessi valori negativi. I valori che puo' assumere sono:

Border top width
Definisce lo spessore del bordo superiore. Non sono ammessi valori negativi. I valori che puo' assumere sono:

Border bottom width
Stabilisce lo spessore del bordo inferiore. Non sono ammessi valori negativi. I valori che puo' assumere sono:

Border width
Imposta lo spessore di tutti i bordi. Non sono ammessi valori negativi. Se specificati 4 valori, si intendono rispettivamente: il margine superiore, destro, inferiore, sinistro. Se ne vengono attribuiti solo 2 o 3, i valori omessi erediteranno il valore del lato a essi opposto. Se altresi' ne venisse indicato uno solo, tale valore varra' per tutti e quattro i lati. I valori che puo' assumere sono:

Border left color
Imposta il colore del bordo sinistro. Per esempio:
p { border-left-color: yellow }

Border right color
Imposta il colore del bordo destro. Per esempio:
p { border-right-color: black }

Border top color
Imposta il colore del bordo superiore. Per esempio:
p { border-left-color: green }

Border bottom color
Imposta il colore del bordo inferiore. Per esempio:
p { border-bottom-color: white }

Border left style
Imposta come il bordo sinistro che delimita la box deve essere visualizzato. I valori che puo' assumere sono:

Border right style
Specifica come il bordo destro che delimita la box deve essere visualizzato. I valori che puo' assumere sono:

Border top style
Imposta come il bordo superiore che delimita la box deve essere visualizzato. I valori che puo' assumere sono:

Border style
Definisce come tutti i bordi che delimitano la box devono essere visualizzati.
Imposta lo spessore di tutti i bordi. Se specificati 4 valori, si intendono rispettivamente alla distanza del lato superiore, destro, inferiore, sinistro. Se ne vengono attribuiti solo 2 o 3, i valori omessi erediteranno il valore del lato a essi opposto. Se altresi' ne venisse indicato uno solo, tale valore varra' per tutti e quattro i lati I valori che puo' assumere sono:

Border left
In riferimento al solo margine sinistro, indica spessore, stile e colore. I possibili valori sono gli stessi di Border top width, di Border style e i colori.
Per esempio:
p { border-left: thin dotted green }

Border right
In riferimento al solo margine destro, indica spessore, stile e colore. I possibili valori sono gli stessi di Border top width, di Border style e i colori.
Per esempio:
p { border-right: medium solid gray }

Border top
In riferimento al solo margine superiore, indica spessore, stile e colore. I possibili valori sono gli stessi di Border top width, di Border style e i colori.
Per esempio:
p { border-top: thick groove yellow }

Border bottom
In riferimento al solo margine inferiore, indica spessore, stile e colore. I possibili valori sono gli stessi di Border top width, di Border style e i colori.
Per esempio:
p { border-bottom: medium solid black }

Border
In riferimento a tutti i margini, indica rispettivamente spessore, stile e colore. I possibili valori sono gli stessi di Border top width, di Border style e i colori. Inoltre, non e' possibile assegnare proprieta' diverse ai 4 bordi.
Per esempio:
p { border: thin groove white }

Height
Imposta l'altezza di un elemento. I possibili valori sono:

Width
Imposta la larghezza di un elemento. I possibili valori sono:

<11> Posizionare gli elementi

Utilizzando i fogli di stile si possono posizionare gli elementi in un qualsiasi punto del documento. In questo modo si puo' risparmiare tempo prezioso, altresi' sprecato nella creazione di complicate tabelle usate per perfezionare la distribuzione degli oggetti.
Ecco quindi le proprieta' da utilizzare per posizionare gli elementi:

Position
Imposta la posizione di un elemento. I valori possibili sono:

Left
Attribuisce il limite sinistro all'elemento. I valori che puo' assumere sono:

Top
Attribuisce il limite superiore all'elemento. I valori che puo' assumere sono:


Clip
Individua un'area appartenente a un elemento la sola che deve essere visualizzata. I valori che puo' assumere sono:

Overflow
Gestisce i casi in cui il contenuto di un elemento superi le dimensioni dell'area all'interno della quale deve essere inserito. I valori che puo' assumere sono:

Visibility
Attribuisce all'elemento la possibilita' di essere visto dall'utente. Tramite JavaScript, il suo valore iniziale puo' essere cambiato. Le possibilita' di scelta sono:

Z-index
Attribuisce un indice all'oggetto specificato in modo da permettere l'accavallamento tra oggetti. Gli elementi con un indice-z piu' basso appariranno davanti. Le possibilita' di scelta sono:

Float
Permette il posizionamento del testo intorno a un elemento. I possibili valori sono:

Clear
Definisce la posizione di un oggetto rispetto a un altro. I possibili valori sono:

<12> Le classi

Le classi, sono dei fondamentali strumenti di diversificazione degli esistenti tag Html. Se si volesse ad esempio assegnare un tipo di cursore al tag font, basterebbe utilizzare:
font {cursor: hand}

Si potrebbe pero' volere utilizzare un altri puntatore, sempre pero' all'interno del tag font. Per far cio', e' necessario assegnare delle classi, ovvero dare un valore all'attributo class di un qualsiasi tag (in questo caso font). Ad esempio:
<font class="cursore-hand">
<font class="cursore-n-resize">

In questo modo abbiamo specificato due class per uno stesso tag (font). Queste classi poi vanno specificati all'interno dei tag head, in un comune foglio di stile, digitando:
<STYLE>
font.cursore-hand {cursor: hand}
font.cursore-n-resize {cursor: n-resize}
</STYLE>

Continuando il discorso delle classi, si giunge alle pseudoclassi. Per fare un esempio di pseudoclasse, si puo' citare l'effetto dei link sottolineati o meno al passaggio del mouse. In questo caso infatti, l'evento onMouseOver si rispecchia nella pseudoclasse hover. Ad esempio:
<STYLE>
A:link { text-decoration: underline; color: blue }
visited { text-decoration: underline; color: navy }
over { text-decoration: none; color: red }

</STYLE>

<13> Effetti sul cursore

I Cascade Style Sheets, in collaborazione con Microsoft Internet Explorer, permettono di utilizzare dei puntatori differenti da quelli di default: la freccetta, la mano per i links, la stanghetta per il testo ecc.
Impostarne uno diverso dal solito e' molto semplice. Per osservare il risultato dei vari codici di esempio, passa con il mouse sopra il testo corrispondente (solo con MsIe):

Cursor: auto
Utilizzando il valore auto, il browser utilizzera' il cursore di default. In pratica, e' come se non specificassimo niente. Ecco il sorgente:
font {cursor: auto}

Cursor: crosshair
Il valore crosshair permette di ottenere una croce, come un mirino, sul testo specificato. Il codice e':
font {cursor: crosshair}

Cursor: default
Il valore default impone l'utilizzo della classica freccietta inclinata verso l'alto a destra, anche per i collegamenti ipertestuali e per il testo. Il codice:
font {cursor: default}

Cursor: hand
Impostando hand come valore di cursor, l'oggetto specificato avra' la classica mano dei collegamenti ipertestuali. E' possibile in alternativa usare cursor:pointer (peraltro più compatibile con i browser attuali in circolazione) Il codice e':
font {cursor: hand}

Cursor: move
Il cursore move e' quello tipico che assume il puntatore all'atto dello spostamento di una qualsiasi finestra. Il sorgente e':
font {cursor: move}

Cursor: e-resize
La dicitura e-resize permette l'utilizzo di una freccietta perfettamente inclinata verso destra. Il codice e':
font {cursor: e-resize}

Cursor: ne-resize
Il valore ne-resize inclina la solita freccietta verso l'angolo alto destro. Simile alla precedente, ma un po' inclinata verso l'alto. Il sorgente da utilizzare e':
font {cursor: ne-resize}

Cursor: nw-resize
Digitando nw-resize come valore di cursor, si otterra' una freccietta inclinata verso l'alto a sinistra. Lo stesso risultato di ottiene impostando default.
font {cursor: nw-resize}

Cursor: n-resize
Grazie a n-resize la classica freccietta indica la parte superiore del nostro monitor. Ecco come appare il foglio di stile:
font {cursor: n-resize}

Cursor: s-resize
Utilizzando s-resize la nostra freccietta indica la parte inferiore del monitor. Il Cascade Style Sheets da usare e':
font {cursor: s-resize}

Cursor: se-resize
La voce se-resize inclina la classica freccietta verso l'angolo basso destro del monitor. Il codice e':
font {cursor: se-resize}

Cursor: sw-resize
L'sw-resize permette di abbassare la freccietta verso l'angolo sinistro basso del nostro monitor. Il sorgente e':
font {cursor: sw-resize}

Cursor: w-resize
w-resize sposta la freccietta verso la sinistra del nostro schermo. Il foglio di stile si presenta come qui indicato:
font {cursor: w-resize}

Cursor: text
text fa in modo che in qualsiasi punto dello schermo venga utilizzata la stanghetta che il browser usa quando ci si sposta sopra del classico testo.
font {cursor: text}

Cursor: wait
Il wait cambia il cursore in una clessidra. Questo effetto puo' essere utile nelle pagine dinamiche in cui si faccia attendere l'utente. Il codice e':
font {cursor: wait}

Cursor: help
Il cursore, utilizzando help viene sostituito da una freccietta con affianco un punto di domanda, tipico delle guide in linea di Microsoft.
font {cursor: help}

<14>Stampa di un documento

Utilizzando i fogli di stile a cascata, e' possibile, al contrario di Html, pilotare la stampa di una qualsiasi pagina Html. A differenza di Javascript non e' fattibile avviare un processo di stampa, ma solo bloccarla prima o dopo l'inserimento di una certa proprietà.

Page break after

Subito dopo il punto in cui viene inserita questa proprieta', si ferma la stampa del documento. I valori che puo' assumere sono:

Page break before

Subito prima il punto in cui viene inserita questa proprieta', si ferma la stampa del documento. I valori che puo' assumere sono:

E' possibile definire degli stili personalizzati per il video e per la stampa: nell'esempio seguente viene impostata una classe IPAD per il tag IMG che non mostrerà l'immagine in stampa ma solo a video. In questo caso il cursore avrà la forma di una mano:

/* ================================== */
/* INIZIO Stile per la stampa */
/* ================================== */
@media print
{
   IMG.IPAD { Visibility: hidden }
}
/* ================================== */
/* INIZIO Stile per il video */
/* ================================== */
@media screen
{
   IMG.IPAD { Visibility: visible; cursor:pointer }
}