CSS Introduzione ai Cascading Style Sheet

Transcript

CSS Introduzione ai Cascading Style Sheet
Dott.Ing.Ivan Ferrazzi
CSS
Introduzione
ai
Cascading Style Sheet
Dott. Ing. Ivan Ferrazzi
V1.5 del 14/10/2013
1/45
Dott.Ing.Ivan Ferrazzi
Copyright ©2013 Dott.Ing. Ivan Ferrazzi
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
License, Version 1.2 or any later version published by the
Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and no Back-Cover Texts.
2/45
Dott.Ing.Ivan Ferrazzi
Indice generale
INTRODUZIONE....................................................................................................5
I METODI DEL CSS...............................................................................................6
CSS in linea .....................................................................................................6
CSS a stile incorporato nella pagina................................................................7
CSS in un foglio esterno...................................................................................7
LE CLASSI............................................................................................................9
LAVORARE CON GLI ID.......................................................................................10
GLI STILI.............................................................................................................11
I parametri di stile per il testo.......................................................................11
I parametri di stile per i caratteri...................................................................13
I parametri di stile per i colori........................................................................14
I parametri di stile per definire le dimensioni................................................15
I parametri di stile per definire le posizioni....................................................15
I parametri di stile per la visibilità.................................................................17
I parametri di stile per lo sfondo....................................................................18
I parametri di stile per gli elementi contenitori..............................................19
I parametri di stile per le liste........................................................................21
I parametri di stile per le tabelle....................................................................22
RAGGRUPPAMENTO E NIDIFICAZIONE...............................................................24
Raggruppamento di stili.................................................................................24
Elementi nidificati..........................................................................................24
Nidificazione padre/figlio...............................................................................25
Stile per elemento a seguire..........................................................................25
Stile per tutti gli elementi a seguire..............................................................26
PSEUDO-CLASSI ED ELEMENTI...........................................................................27
Pseudo-classi per il tag a...............................................................................27
Pseudo-classe per il primo figlio....................................................................28
Pseudo-classe per elementi con il focus........................................................28
Pseudo-elementi su testi in elementi a blocco...............................................28
Pseudo-elementi per l'aggiunta di contenuto................................................29
MEDIA QUERIES.................................................................................................30
Come integrare le media queries..................................................................30
Tipi di dispositivi............................................................................................31
Caratteristiche di dispositivi..........................................................................31
CSS3..................................................................................................................34
Stili per i contenitori ed i loro contenuti.........................................................34
Importazione di font aggiuntivi......................................................................38
Stili per la trasformazione degli elementi......................................................39
Effetti di transizione.......................................................................................40
Effetti di animazione......................................................................................42
LE VARIE UNITA'.................................................................................................44
Le unità di misura per le dimensioni..............................................................44
I valori assoluti...............................................................................................44
I valori relativi................................................................................................45
I valori assoluti...............................................................................................45
I valori di posizionamento .............................................................................45
3/45
Dott.Ing.Ivan Ferrazzi
4/45
Dott.Ing.Ivan Ferrazzi
INTRODUZIONE
I CSS nascono con lo scopo di facilitare la gestione della formattazione di
pagine web, infatti questi possono definire ad esempio il colore di sfondo, il
tipo e colore dei caratteri, l'impaginazione dei documenti ecc.ecc.
Questa gestione della formattazione ci semplifica notevolmente il lavoro di
manutenzione o di modifica di un sito, basti pensare a un sito web composto da
centinaia di pagine, le quali fanno riferimento ad uno stile, la modifica di
questo produrrebbe un cambiamento dello stile di tutte le pagine.
I CSS si possono utilizzare in tre modi:
●
●
●
in linea, cioè inseriti direttamente nel tag HTML,
a stile incorporato, cioè inseriti ad inizio pagina nel HEAD,
In un foglio di stile esterno, cioè un file con estensione .css che contiene
tutti gli stili ai quali fa riferimento la pagina web.
Gli stili devono rispettare delle regole di sintassi, gli attributi vanno racchiusi
tra parentesi graffe {...}, per simbolo di uguaglianza si utilizzano i due punti
(:) e più attributi si separano con il punto e virgola (;).
Per esempio:
P {text­align: justify; color:red; font­size:32pt;}
5/45
Dott.Ing.Ivan Ferrazzi
I METODI DEL CSS
Vediamo ora i tre modi con i quali possiamo utilizzare le direttive CSS.
CSS in linea
La modalità in linea si adotta per assegnare uno stile ad una parte di
codice, senza che questo vada a influire sul resto della pagina.
Lo stile viene inserito direttamente nel tag HTML, utilizzando l'attributo
STYLE. Esempio:
<span style=”color: red; font-size: 12pt;”>ciao</span>
Questo stile non sarà esteso a tutti i SPAN ma si limiterà a modificare lo
stile del colore e la grandezza del carattere di tutto ciò che è compreso
solo tra l'apertura e la chiusura di questo SPAN.
Per quanto riguarda la sintassi gli stili devono essere racchiusi tra
virgolette o apici e separati da punto e virgola, preceduti dall'attributo
STYLE=.
L'attributo STYLE può essere associato a quasi tutti i tag HTML, ma
sopratutto vengono utilizzati quei tag che fanno da “contenitori”, cioè se
usati da soli non producono alcun effetto, ma utilizzati in combinazione
con gli stili modificano tutto ciò che contengono. Questi “contenitori”
sono <div> e <span>.
DIV produce un ritorno a capo con la sua chiusura, mentre SPAN no e si
può utilizzare anche all'interno di un DIV. Esempio:
<div style=”color:red;”>
6/45
Dott.Ing.Ivan Ferrazzi
ciao mi chiamo <span style=”font-size:45pt;”>mirko</span>
</div>
CSS a stile incorporato nella pagina
Lo stile incorporato è un modo per definire uno stile che dovrà assumere
un tag, il quale sarà adottato da tutta quella tipologia di tag presenti nella
pagina. Questo fa si che non bisogna definire ogni volta all'interno di un
tag lo stile, ma lo si può definire una volta sola all'interno di HEAD.
Questo metodo non impedisce di utilizzare lo stile in linea, che ha
prevalenza su quello incorporato.
La sintassi per lo stile incorporato, prevede che lo stile sia inserito nel
HEAD e che che sia compreso dall'apertura e chiusura del tag STYLE con
dichiarazione dell'attributo TYPE es:
<head>
<style type=”text/css”>
span {
color: red;
font-size: 12pt;
font-family: Arial,Verdana;
}
</style>
</head>
Così facendo si stabilisce lo stile che dovranno adottare tutti i SPAN della
pagina. Se si avesse bisogno di commentare uno stile, questo deve
essere racchiuso tra /* e */. Esempio:
<style type=”text/css” >
span {
color: red; /* colore rosso*/
font-size: 54pt; /* grandezza carattere */
}
</style>
CSS in un foglio esterno
Gli stili oltre alla modalità in linea e alla modalità integrata ad inizio
pagina, possono essere inseriti tramite un foglio esterno, separato dalla
pagina, la quale ne fa solo un richiamo.
Questo non preclude l'utilizzo della modalità in linea o di quella integrata
ad inizio pagina, che avrebbero priorità sul foglio esterno.
Il foglio esterno non è altro che un file di testo dove andremo a scrivere
semplicemente tutti gli stili che vogliamo, ma dovrà essere salvato con
estensione .css.
Dal punto di vista sintattico, basta scrivere le dichiarazioni di stile come
quelle integrate ad inizio pagina, ad esempio:
7/45
Dott.Ing.Ivan Ferrazzi
span {
color: Red;
font-size: 67pt;
}
p {
color: Yellow;
font-family:Arial, ”MS Sans Serif”;
}
Un parametro dello stile composto da più parole, come potrebbe essere
un tipo di scrittura, bisogna racchiuderlo tra virgolette (vedi esempio
precedente).
Ora basta salvare il file con estensione .css per far si che si possa
richiamare dalla pagina.
Il richiamo avviene mediante il comando:
<link rel=”stylesheet” type=”text/css” href=”nome_file.css”>
compreso tra <head></head>
oppure con @import
url(nome_file.css);
type=”text/css”></style>
compreso tra i tag <style
I CSS a stile incorporato oppure quelli esterni possono assegnare uno stile
anche a determinati elementi di un tag. Possiamo ad esempio attivarlo uno
stile per il tag <input> ma solo per gli elementi di tipo text come segue:
input[type=”text”] {background-color:blue}
8/45
Dott.Ing.Ivan Ferrazzi
LE CLASSI
Un modo molto pratico ed utilizzato per definire gli stili sono le classi, un
sistema mediante il quale si creano degli stili, battezzandoli con un nome, il
quale verrà richiamato dal tag.
É possibile così creare quanti stili vogliamo, attribuendogli nomi diversi
richiamandoli ogni volta ce ne sia di bisogno.
Per definire una classe basta digitare un nome preceduto da un punto (.) al
posto del nome del tag nella dichiarazione di stile. Esempio:
.mio_stile{
color: red;
font-size: 56pt;
font-style: italic;
}
La scelta del nome non ha importanza, ma sarebbe meglio sceglierlo attinente
allo stile, così che quando lo si utilizzerà verrà ricordato più facilmente.
Ora basta solo richiamare la classe dal tag HTML
<span class=”mio_stile [altro_stile]”>....</span>
Nel richiamo allo stile non si inserisce il punto davanti al nome. Le classi sono
supportate da tutti i tag HTML. Si possono utilizzare anche più stili combinati
inserendo i nomi divisi da spazi vuoti.
9/45
Dott.Ing.Ivan Ferrazzi
LAVORARE CON GLI ID
I CSS ci danno la possibilità di utilizzare gli ID, cioè degli identificatori
attribuibili a qualsiasi tag, ma usati più che altro con i “contenitori” come il DIV.
Lo scopo degli identificatori è quello di posizionare gli oggetti in una pagina
web.
Il funzionamento è semplice, in quanto sono molto simili ai class, basta definire
un ID nello STYLE interno o esterno che sia, dargli un nome preceduto dal
cancelletto (#). Esempio:
#nome {
position: absolute;
top: 40px;
left: 32px;
z-index: 1;
}
10/45
Dott.Ing.Ivan Ferrazzi
GLI STILI
I parametri di stile per il testo
text-align: left|right|center|justify;
Questo stile permette di modificare l'allineamento del testo.
left
right
center
justify
allineamento a sinistra
allineamento a destra
centrato
giustificato
Esempi:
P
P
DIV
DIV
{text-align:
{text-align:
{text-align:
{text-align:
left;}
right;}
center;}
justify;}
text-decoration: overline|underline|line-through|blink|none;
Questo stile permette di modificare la decorazione del testo.
overline
underline
line-through
blink
none
sopralineato
sottolineato
sbarrato
lampeggiante
senza
Esempi:
11/45
Dott.Ing.Ivan Ferrazzi
H1
P
DIV
P
P
P
{text-decoration:
{text-decoration:
{text-decoration:
{text-decoration:
{text-decoration:
{text-decoration:
overline;}
underline;}
overline underline;}
line-through;}
blink;}
none;}
font-style: normal|italic|oblique;
Questo stile permette di modificare la proprietà stile del testo.
normal
italic
oblique
stile di default
stile corsivo
sitle obliquo
text-indent: {rientro di pixel} | {rientro in percentuale};
Questo stile permette di modificare l'indentazione del testo.
Esempi:
P
DIV
{text-indent: 12px;}
{text-indent: 20%;}
text-transform: capitalize|uppercase|lowercase;
Questa direttiva di stile permette di effettuare delle trasformazioni del
testo.
capitalize
uppercase
lowercase
trasforma in maiuscola la prima lettera di ogni parola
trasforma tutto in maiuscolo
trasforma tutto in minuscolo
Esempi:
P
P
P
{text-transform: capitalize;}
{text-transform: uppercase;}
{text-transform: lowercase;}
line-height: normal|{numero}|{percentuale};
Questo parametro di stile permette di definire lo spazio di interlinea,
quindi lo spazio tra le singole righe.
normal
{numero}
{percentuale}
interlinea normale
interlinea espressa in em
interlinea espressi in percentuale
Esempi:
P
DIV
{line-height: 3em;}
{line-height: 50%;}
12/45
Dott.Ing.Ivan Ferrazzi
letter-spacing: numero;
Questo parametro di stile permette di definire lo spazio tra le lettere
espresso dal valore di numero.
Esempi:
P
DIV
{letter-spacing: 1em;}
{letter-spacing: 2px;}
direction: rtl|ltr;
Con questo attributo possiamo definire la direzione del testo.
il testo va da destra verso sinistra
il testo va da sinistra verso destra
rtl
ltr
Esempi:
DIV
{direction: rtl}
I parametri di stile per i caratteri
font-family: tipo_carattere1,tipo_carattere2,...;
Questo parametro di stile permette di definire il tipo di carattere da
utilizzare per il testo desiderato. I vari font devono essere separati da
virgola. Specificando più font si ha la possibilità di definire un font
alternativo in caso in cui il primo non sia presente sulla macchina del
visitatore.
Esempi:
P
{font-family: verdana, arial, sans-serif;}
DIV {font-family: "MS Sans Serif", verdana, sans-serif;}
font-size: valore;
Questo attributo permette di definire la dimensione del testo espresso in
punti (pt), pixel (px), in percentuale oppure usando la proprietà del testo
come ad esempio larger.
Esempi:
P
I
B
H1
{font-size:
{font-size:
{font-size:
{font-size:
9pt;}
larger;}
18px;}
150%;}
font-style: normal|italic|oblique;
Questo attributo permette di definire lo stile da utilizzare per il blocco
desiderato.
Esempi:
H1
{font-style: normal;}
13/45
Dott.Ing.Ivan Ferrazzi
P
B
{font-style: italic;}
{font-style: oblique;}
font-variant: normal|small-caps;
Questo parametro permette di definire delle varianti allo stile da
apportare al testo desiderato.
Esempi:
P
B
{font-variant: small-caps;}
{font-variant: normal;}
font-weight: bold|normal|{valore};
Con questo attributo possiamo definire lo spessore da utilizzare per la
visualizzazione del testo.
bold
normal
valore
grassetto
spessore normale
valore numerico compreso tra 100 (normale) a 700
(grassetto)
Esempi:
P
H1
{font-weight: bold;}
{font-weight: 700;}
I parametri di stile per i colori
color: valore;
Questo parametro permette di definire il colore da utilizzare espresso in
valore esadecimale, come colore in lingua inglese, oppure con l'utilizzo di
rgb(r,g,b).
Esempi:
P
DIV
H1
{color: red;}
{color: #990099;}
{color: rgb(255,0,0);}
background-color: valore;
Questo parametro permette di definire il colore di sfondo espresso in
valore esadecimale, come colore in lingua inglese, oppure con l'utilizzo di
rgb(r,g,b).
Esempi:
P
DIV
H1
{background-color: yellow}
{background-color: #33ccff}
{background-color: rgb(255,255,0)}
14/45
Dott.Ing.Ivan Ferrazzi
I parametri di stile per definire le dimensioni
width: {valore in pixel}|{valore percentuale}|auto
Questo parametro permette di definire la larghezza del contenitore.
Esempio:
#css {position: absolute; width: 300px; left: 100px; top: 50px;}
height: {valore in pixel}|{valore percentuale}|auto
Questo parametro permette di definire l'altezza del contenitore.
Esempio:
#css {position: absolute; height: 400px; ... }
I parametri di stile per definire le posizioni
position: absolute|fixed|relative|static
Questo parametro permette di definire la posizione del contenitore di
appartenenza.
absolute
fixed
relative
static
definisce una posizione assoluta; come riferimento
viene preso il primo contenitore “padre” con
posizionamento non statico; se non ne trova usa come
riferimento l'elemento body
stacca l'elemento dalla struttura statica e utilizza come
riferimento di posizionamento la finestra del browser
all'interno della quale viene inserito; l'elemento rimane
fisso anche se la pagina viene scrollata
stacca l'elemento dalla struttura statica, ma utilizza
come riferimento il proprio posizionamento all'interno
della stessa struttura
si ottiene un posizionamento naturale anche se le
coordinate sono uguali per oggetti diversi questi non si
sovrappongono
Esempio:
#css {position: absolute;; left: 100px; top: 50px;}
top: {valore in pixel}|{valore percentuale}|auto
Questo parametro permette di definire il margine superiore.
Esempio:
#css {position: absolute; top: 50px; left: 100px;}
15/45
Dott.Ing.Ivan Ferrazzi
left: {valore in pixel}|{valore percentuale}|auto
Questo parametro permette di definire il margine sinistro.
Esempio:
#css {position: absolute; top: 50px; left: 100px;}
display: block|inline|none
Questo parametro permette di definire lo spazio utilizzato per l'oggetto in
questione.
block
inline
none
l'oggetto viene inserito utilizzando un'interruzione
prima e dopo l'oggetto stesso; inserimento avviene in
modalità verticale
l'oggetto
viene
inserito
in
sequenza,
quindi
orizzontalmente
l'oggetto viene reso invisibile e tolto dall'attuale
struttura visualizzata (a differenza del hidden con
visibility dove lo spazio occupato rimane visibile)
Esempio:
#css {display: none; ... }
z-index: valore
Questo parametro permette di definire la profondità dell'oggetto. In
alcuni casi non funzione se non viene definita anche la proprietà top. Se
non dovesse servire va comunque settata con valore 0px.
Esempio:
#css {position: absolute; z-index: 10; top: 0px; height: 400px; ... }
float: left|right|none;
Questo parametro permette di definire il flusso degli elementi inserito
all'interno del componente stesso.
left
right
tutti gli elementi con questa proprietà vengono messi in
pila, uno dopo l'altro da sinistra verso destra (fino a
quando non viene utilizzata la proprietà clear)
tutti gli elementi con questa proprietà vengono messi in
pila, uno dopo l'altro da destra verso sinistra (fino a
quando non viene utilizzata la proprietà clear)
clear: left|right|both;
Questo parametro permette di annullare la proprietà di flusso e di iniziare
su una nuova riga.
16/45
Dott.Ing.Ivan Ferrazzi
I parametri di stile per la visibilità
Per ogni elemento inserito all'interno della nostra struttura è possibile
definire il comportamento di visibilità necessario. Possiamo decidere di
mostrare o meno un contenuto o addirittura definirne il grado di
trasparenza.
overflow: visible|hidden|scroll|auto
Questo parametro permette di definire il comportamento di
visualizzazione del contenuto di un contenitore (come ad esempio un div
).
visible
hidden
scroll
auto
nel caso in cui il contenuto fosse più ampio della
dimensione
del
contenitore
questo
verrebbe
visualizzato al di fuori del contenitore stesso
nel caso in cui il contenuto fosse più ampio della
dimensione del contenitore questo verrebbe nascosto
in questo caso vengono aggiunte le scrollbars per
visualizzare l'intero contenuto
le scrollbars vengono aggiunto solamente nel caso in
cui verrebbe sforato lo spazio messo a dispozione
Esempio:
#css {width: 200px; height: 200px; overflow: auto; ... }
visibility: hidden|visible
Questo parametro permette di definire la visibilità dell'oggetto.
hidden
visible
l'elemento viene nascosto, ma rimane
utilizzato dall'elemento quando è visibile
l'elemento viene visualizzato
lo
Esempio:
#css {position: absolute; visibility: hidden; height: 400px; ... }
opacity: {0.0-1.0}; (Firefox)
filter: alpha(opacity={1-100}); (IE)
Questo parametro permette di definire l'opacità dell'oggetto.
Esempio:
#css {opacity:0.4; filter: alpha(opacity=40);}
17/45
spazio
Dott.Ing.Ivan Ferrazzi
I parametri di stile per lo sfondo
Vediamo ora i parametri di stile che possiamo utilizzare per modificare le
proprietà dello sfondo. Vediamo come poter inserire un'immagine nello
sfondo e come andare a modificare le proprietà di posizionamento
all'interno di esso.
background-image: url('[percorso/]file_immagine');
Questo parametro permette di definire l'immagine da utilizzare come
immagine di sfondo.
Esempi:
P
DIV
{background-image: url('percorso/immagine.gif');}
{background-image: url('logo.gif');}
background-repeat: repeat|repeat-x|repeat-y|no-repeat|inherit;
Questo parametro permette di definire le proprietà di ripetizione
dell'immagine da utilizzare come sfondo. Un'immagine inserita come
sfondo
viene
normalmente
ripetuta
sia
orizzontalmente
che
verticalmente.
repeat
repeat-x
repeat-y
no-repeat
inherit
ripetizione sia orizzontale che verticale
ripetizione orizzontale
ripetizione verticale
senza ripetizione
eredita le proprietà dall'impostazione del padre
Esempi:
DIV
{background-image: url('logo.gif');
background-repeat: repeat-x}
DIV
{background-image: url('logo.gif');
background-repeat: no-repeat}
background-attachment: scroll|fixed|inherit;
Questo parametro permette di definire le proprietà dell'immagine da
utilizzare come sfondo.
scroll
fixed
inherit
per far scorrere lo sfondo insieme al testo
per fissare lo sfondo e far scorrere solo il testo
eredita la proprietà dall'impostazione del padre
Esempi:
{background-image: url('logo.gif'); background-attachment: scroll;}
{background-image: url('logo.gif'); background-attachment: fixed;}
18/45
Dott.Ing.Ivan Ferrazzi
background-position: {vpos hpos|x% y%|xpos ypos|inherit};
Questo parametro permette di definire il punto di partenza dell'immagine
da inserire come sfondo. Come posizione possiamo inserire top left, top
center, top right, center left, center center, center right, bottom left,
bottom center, bottom right, x%, y%, xpos, ypos, oppure inherit
vpos
hpos
x% y%
xpos ypos
inherit
può essere top, center, oppure bottom
può essere left, center, oppure right
sono le coordinate x e y in percentuale
sono le coordinate x e y
eredita la proprietà dall'impostazione del padre
Esempi:
DIV
{background-image: url('logo.gif');
background-repeat: no-repeat;
background-position: right top}
I parametri di stile per gli elementi contenitori
Intorno ai vari contenuti HTML sono presenti degli spazi ben definiti che
permettono di modificare le proprietà di layout dell'elemento stesso.
L'elemento base è l'area all'interno della quale viene mostrato il contenuto
dell'elemento. Intorno a questa troviamo il bordo ( border), mentre tra questi due
si trova un'area che ci permette di staccare il contenuto dal bordo ( padding).
Intorno al bordo troviamo un'ulteriore area ( outline) che possiamo formattare
così come formattiamo lo stile del bordo. L'ultimo spazio utilizzabile è il
margine (margin) che ci permette di staccare l'elemento visualizzato dagli altri
elementi presenti all'interno della pagina.
Come proprietà per il bordo troviamo: border-style, border-width e border-color.
border-style: valore [valore [valore valore]];
Questo parametro permette di definire lo stile del bordo utilizzato.
none
dotted
dashed
solid
double
groove
ridge
inset
outset
non viene utilizzato bordo
bordo punteggiato
bordo tratteggiato
bordo solido
bordo doppio
bordo 3D incavo
bordo 3D concavo
bordo 3D abbassato
bordo 3D inalzato
border-width: valore;
Questo parametro permette di definire lo spessore del bordo.
19/45
Dott.Ing.Ivan Ferrazzi
border-color: valore;
Questo parametro permette di definire il colore del bordo, per i valori
vedere color.
Come proprietà per l'area intorno al bordo troviamo: outline-style, outlinewidth e outline-color.
outline-style: valore [valore [valore valore]];
Questo parametro permette di definire lo stile dell'area intorno al bordo
utilizzato.
none
dotted
dashed
solid
double
groove
ridge
inset
outset
non viene utilizzato bordo
bordo punteggiato
bordo tratteggiato
bordo solido
bordo doppio
bordo 3D incavo
bordo 3D concavo
bordo 3D abbassato
bordo 3D inalzato
outline-width: valore;
Questo parametro permette di definire lo spessore dell'area intorno al
bordo.
outline-color: valore;
Questo parametro permette di definire il colore dell'area intorno al bordo,
per i valori vedere color.
Come proprietà per il margine possiamo usare: margin, margin-top, margin-left,
margin-right e margin-bottom.
margin: valore [valore [valore valore]];
Questo parametro permette di definire il margine di un componente
definendo ogni margine, il margine alto-basso e sinistro-destro, oppure i
quattro valori separati. Il valore viene assegnato come valore fisso o
percentuale.
margin-top: valore;
Questo parametro permette di definire il margine superiore di un
componente. Il valore viene assegnato come valore fisso o percentuale.
margin-left: valore;
20/45
Dott.Ing.Ivan Ferrazzi
Questo parametro permette di definire il margine sinistro di un
componente. Il valore viene assegnato come valore fisso o percentuale.
margin-right: valore;
Questo parametro permette di definire il margine destro di un
componente. Il valore viene assegnato come valore fisso o percentuale.
margin-bottom: valore;
Questo parametro permette di definire il margine inferiore di un
componente. Il valore viene assegnato come valore fisso o percentuale.
Come proprietà per lo spazio tra il contenuto ed il bordo usiamo: padding,
padding-top, padding-left, padding-right e padding-bottom.
padding: valore [valore [valore valore]];
Questo parametro permette di definire lo spazio definendo ogni spazio, lo
spazio alto-basso e sinistro-destro, oppure i quattro valori separati. Il
valore viene assegnato come valore fisso o percentuale.
padding-top: valore;
Questo parametro permette di definire lo spazio superiore di un
componente. Il valore viene assegnato come valore fisso o percentuale.
padding-left: valore;
Questo parametro permette di definire lo spazio sinistro di un
componente. Il valore viene assegnato come valore fisso o percentuale.
padding-right: valore;
Questo parametro permette di definire lo spazio destro di un
componente. Il valore viene assegnato come valore fisso o percentuale.
padding-bottom: valore;
Questo parametro permette di definire lo spazio inferiore di un
componente. Il valore viene assegnato come valore fisso o percentuale.
I parametri di stile per le liste
Le liste vengono principalmente suddivise in due gruppi: gli elenchi puntati e
gli elenchi numerati.
Per gli elenchi puntati possiamo avere i seguenti stili:
list-style-type: valori;
Questo stile permette di definire il tipo di puntatore da utilizzare. Per
questo parametro possiamo utilizzare i seguenti valori:
none
non utilizza puntatore
21/45
Dott.Ing.Ivan Ferrazzi
disc
circle
square
valore di default; visualizza un punto
visualizza un cerchio vuoto
visualizza un quadrato
list-style-position: inside|outside;
Questo stile permette di definire la posizione della lista.
list-style-image: url('[percorso/]file_immagine');
Questo parametro permette di definire l'immagine da utilizzare come
puntatore.
Esempi:
UL
UL
{list-style-image: url('percorso/immagine.gif');}
{list-style-image: url('logo.gif');}
Per gli elenchi numerati possiamo avere i seguenti stili:
list-style-type: valori;
Questo stile permette di definire il tipo di puntatore da utilizzare. Per
questo parametro possiamo utilizzare i seguenti valori:
none
armenian
decimal
decimal-leading-zero
georgian
lower-alpha
lower-greek
lower-latin
lower-roman
upper-alpha
upper-latin
upper-roman
non utilizza puntatore
visualizza la numerazione
visualizza la numerazione
visualizza la numerazione
visualizza la numerazione
visualizza la numerazione
visualizza la numerazione
visualizza la numerazione
visualizza la numerazione
visualizza la numerazione
visualizza la numerazione
visualizza la numerazione
“Armenian”
con numero
con 0 e numero
“Georgian”
a, b, c, ecc.
alpha, beta, ecc.
“Latin”
i, ii, iii, ecc.
A, B, C, ecc.
A, B, C, ecc.
I, II, III, ecc.
list-style-position: inside|outside;
Questo stile permette di definire la posizione della lista.
I parametri di stile per le tabelle
border-collapse: collapse|separate;
Questo stile permette di definire la disposizione delle celle all'interno
della tabella:
collapse
le celle vengono unite l'una all'altra
22/45
Dott.Ing.Ivan Ferrazzi
separate
le celle vengono separate
border-spacing: value [value];
Questo stile permette di definire lo spazio tra le celle. Con l'assegnazione
di un valore assegnamo sia lo spazio orizzontale che verticale. Con due
valori definiamo quello orizzontale con il primo valore, quello verticale
con il secondo.
caption-side: top|bottom;
Questo parametro permette di posizionare l'etichetta della tabella al di
sopra o al di sotto della tabella stessa.
empty-cells: show|hide;
Questo parametro permette di definire se mostrare o meno il bordo di
celle vuote.
table-layout: auto|fixed;
Questo parametro permette di definire il tipo di layout con il quale creare
la tabella.
23/45
Dott.Ing.Ivan Ferrazzi
RAGGRUPPAMENTO E
NIDIFICAZIONE
Vediamo nel seguente capitolo come creare delle classi di stile che vengono
utilizzate da gruppi di elementi o elementi nidificati.
Raggruppamento di stili
Quando dobbiamo creare delle classi di stile uguali per più selettori
possiamo raggruppare i selettori separandoli da una virgola:
h1, p, a {
color: red;
}
Nell'esempio creiamo una classe che utilizziamo per i tag h1, p e a.
Elementi nidificati
Se volessimo specificare invece una classe di stile da utilizzare per tutti
gli elementi presenti all'interno di un determinato elemento (quindi
nidificati) potremmo utilizzare lo spazio come segue:
div h1 {
color: red;
}
24/45
Dott.Ing.Ivan Ferrazzi
In questo caso definiamo la classe di stile per tutti gli elementi h1
(indipendentemente dalla profondità dell'elemento in questione!) che si
trovano all'interno di un qualsiasi elemento div. Nel prossimo codice il
contenuto dei tag scritti in grassetto verranno scritti in rosso:
<div>
<h1>Questo è il titolo</h1>
<p>
<h1>Secondo titolo</h1>
</p>
<h1>Altro titolo</h1>
<p>
<h1>Nuovamente un titolo</h1>
</p>
</div>
Nidificazione padre/figlio
Per limitare l'utilizzo della classe di stile solamente al primo livello di
appartenenza possiamo scrivere:
div>h1 {
color: red;
}
In questo caso intendiamo solamente gli elementi h1 che si trovano
all'interno del primo livello di un qualsiasi tag div. Nel prossimo codice
solamente il contenuto dei tag scritti in grassetto verranno scritti in
rosso:
<div>
<h1>Questo è il titolo</h1>
<p>
<h1>Secondo titolo</h1>
</p>
<h1>Altro titolo</h1>
<p>
<h1>Nuovamente un titolo</h1>
</p>
</div>
Stile per elemento a seguire
Inoltre abbiamo anche la possibilità di creare degli stili validi solamente
per tag che si trovano dopo determinati elementi. Il controllo avviene su
elementi “fratelli” della struttura:
div + p {
color: red;
25/45
Dott.Ing.Ivan Ferrazzi
}
In questo caso la classe di stile verrà presa in considerazione da tutti gli
elementi p che seguono (sullo stesso livello) un elemento div. Nel
prossimo codice solamente il contenuto dei tag scritti in grassetto
verranno scritti in rosso:
<div>
<p>testo</p>
<div>altro testo</div>
<p>Nuovamente testo</p>
<h1>prova</h1>
<p>Questo no</p>
</div>
Stile per tutti gli elementi a seguire
Se non volessimo limitare l'utilizzo della classe di stile solo all'elemento
che si trova direttamente dopo quello in questione, ma bensì a tutti quelli
che seguono potremmo scrivere come segue:
div ~ p {
color: red;
}
Nel prossimo codice solamente il contenuto dei tag scritti in grassetto
verranno scritti in rosso:
<div>
<p>testo</p>
<div>altro testo</div>
<p>Nuovamente testo</p>
<h1>prova</h1>
<p>Questo no</p>
</div>
26/45
Dott.Ing.Ivan Ferrazzi
PSEUDO-CLASSI ED ELEMENTI
Le pseudo-classi, oppure i pseudo-elementi, permettono di aggiungere specifici
effetti ai vari selettori in questione. Le sintassi che possiamo utilizzare sono:
selettore:pseudo-classe
selettore.classe:pseudo-classe
selettore:pseudo-elemento
selettore.classe:pseudo-elemento
Vediamo alcune delle pseudo-classi o dei pseudo-elementi più comuni.
Pseudo-classi per il tag a
a:link {...}
Questa pseudo-classe permette di definire lo stile del link non ancora
visitato.
a:visited {…}
Questa pseudo-classe permette di definire lo stile del link visitato.
a:hover {…}
Permette di definire lo stile per il link quando il puntatore del mouse ci
passa sopra.
a:active {…}
27/45
Dott.Ing.Ivan Ferrazzi
Permette di definire lo stile da utilizzare per il link che viene selezionato.
Pseudo-classe per il primo figlio
selettore:first-child {...}
Questa pseudo-classe identifica il primo tag indicato dal selettore
presente all'interno di un qualsiasi altro tag. Nel seguente esempio:
p:first-child {
color: red;
}
il testo di ogni primo tag p presente all'interno di un qualsiasi altro tag
verrà scritto in rosso. Nel prossimo codice le righe in grassetto sono
quelle che verranno scritte in rosso:
<body>
<p>primo elemento</p>
<p>secondo elemento</p>
<div>
<p>primo elemento</p>
<p>secondo elemento</p>
</div>
</body>
Per indicare solamente il primo tag p all'interno di ogni div scriviamo
come segue:
div > p:first-child {
color: red;
}
Pseudo-classe per elementi con il focus
selettore:focus {...}
Questa pseudo-classe identifica lo stile da utilizzare nel caso in cui si
passi il focus ad un determinato elemento.
input:focus {
background-color: yellow;
}
In questo esempio a tutti gli elementi input che prenderanno il focus
verrà cambiato il colore di sfondo in giallo.
Pseudo-elementi su testi in elementi a blocco
selettore:first-line {...}
28/45
Dott.Ing.Ivan Ferrazzi
Questo pseudo-elemento viene usato per modificare lo stile della prima
riga dell'elemento in questione. Questo pseudo-elemento può essere
utilizzato solamente su elementi di blocco.
selettore:first-letter {...}
Questo pseudo-elemento viene usato per modificare lo stile della prima
lettera dell'elemento in questione. Anche questo pseudo-elemento può
essere utilizzato solamente su elementi di blocco.
Pseudo-elementi per l'aggiunta di contenuto
selettore:before {...}
Questo pseudo-elemento viene usato per aggiungere del contenuto prima
del contenuto dell'elemento stesso. Il seguente esempio aggiunge
un'immagine prima del titolo:
h1:before {
content: url(dot.png);
}
selettore:after {...}
Questo pseudo-elemento viene usato per aggiungere del contenuto dopo
il contenuto dell'elemento stesso. Il seguente esempio aggiunge
un'immagine dopo il testo presente come titolo:
h1:after {
content: url(dot.png);
}
29/45
Dott.Ing.Ivan Ferrazzi
MEDIA QUERIES
Oggi giorno esistono vari dispositivi con caratteristiche di visualizzazione
diverse l'uno dall'altro. I media queries sono dei filtri che permetto di
riconoscere le caratteristiche del dispositivo di visualizzazione con lo scopo di
utilizzare un foglio di stile adeguato all'esigenza.
Come integrare le media queries
Possiamo integrare le media queries importando un foglio di stile esterno,
oppure direttamente all'interno del blocco style della nostra pagina. Per
importare fogli di stile esterni possiamo utilizzare l'attributo media del tag
link come segue:
<link rel=”stylesheet” type=”text/css” media=”screen” href=”global.css” />
se vogliamo invece integrare le media queries direttamente all'interno
del blocco style scriviamo:
<style>
@media screen {
…
}
</style>
30/45
Dott.Ing.Ivan Ferrazzi
Tipi di dispositivi
Il primo elemento all'interno delle media query identifica il dispositivo,
oppure i dispositivi se separati da virgola, per i quali vale la rispettiva
regola. I dispositivi che si possono usare sono:
all
aural
braille
embossed
handheld
print
projection
screen
speech
tty
tv
identifica tutti i dispositivi
per sintetizzatori e dispositivi voce
per dispositivi tattili braille
per stampanti braille
per dispositivi piccoli e/o portatili
per stampanti
per presentazione su proiettori
per schermi di computer
per dispositivi vocali
per dispositivi a dimensione di caratteri fissa (terminal)
per dispositivi come televisori
Esempio:
<style>
@media screen,print {
…
}
</style>
Caratteristiche di dispositivi
Oltre ad identificare il dispositivo possiamo aggiungere delle regole che
ne determinano le specifiche caratteristiche. Più regole possono essere
combinate in maniera logica utilizzano and, or oppure not. Nel caso in cui
ci fossero all'interno della media query più dispositivi le caratteristiche
verrebbero specificate per ognuno di essi. Esempio:
screen and (orientation:landscape), handheld and (orientation:landscape)
Vediamo ora le caratteristiche più utilizzate:
width, min-width, max-width
Questa caratteristica identifica la larghezza di visualizzazione del
dispositivo (nel browser il ViewPort). width identifica la larghezza precisa,
min-width identifica il valore uguale o maggiore, mentre max-width
identifica il valore uguale o minore. Esempio:
<style>
@media all and (min-width:400px) and (max-width:800px) {
…
}
31/45
Dott.Ing.Ivan Ferrazzi
</style>
Questo codice identifica tutti gli schermi che hanno una visualizzazione
tra 400px e 800px.
height, min-height, max-height
Questa caratteristica identifica l'altezza di visualizzazione del dispositivo
(nel browser il ViewPort). height identifica l'altezza precisa, min-height
identifica il valore uguale o maggiore, mentre max-height identifica il
valore uguale o minore.
device-width, min-device-width, max-device-width
La caratteristica device-width identifica la larghezza
effettiva dello
schermo del dispositivo e non solo la parte utilizzata per la
visualizzazione del documento. I prefissi min e max vengono utilizzati
esattamente come nella caratteristica width.
device-height, min-device-height, max-device-height
In questo caso definiamo l'altezza effettiva dello schermo del dispositivo.
Anche qui i prefissi min e max vengono utilizzati come nella caratteristica
height.
orientation
Questa caratteristica permette di utilizzare il valore landscape oppure
portrait. In questo caso il valore si riferisce alle proporzioni tra width e
height. Se width è maggiore di height ci troviamo in visualizzazione
landscape. Nel momento in cui height supera il valore di width
l'orientamento sarà portrait.
<style>
@media handheld and (orientation:portrait) {
…
}
</style>
aspect-ratio
Questa caratteristica permette di definire una proporzione più precisa tra
width e height utilizzando come valore due numeri interi separati dal
simbolo / (es. 4/3, 16/9, ecc.). Anche questa caratteristica permette
l'utilizzo dei prefissi min e max.
device-aspect-ratio
Questa caratteristica è identica a aspect-ratio solo che mette a confronto
le proporzioni di device-width e device-height. Anche qui si possono
32/45
Dott.Ing.Ivan Ferrazzi
utilizzare i prefissi min e max.
color
Questa caratteristica permette di specificare il numero dei bit utilizzati
per rappresentare un color all'interno del dispositivo in questione.
Utilizzando il semplice nome della caratteristica, quindi senza aggiungere
un valore, permette di indicare tutti i dispositivi che mettono a
disposizione una visualizzazione a colori.
<style>
@media all and (color) {
…
}
</style>
color-index
Questa caratteristica permette di specificare il numero di colori
supportati all'interno della tavolozza colori del dispositivo. Anche qui
possiamo utilizzare i prefissi min e max come già visto precedentemente.
<style>
@media screen and (min-color-index:16) {
…
}
</style>
33/45
Dott.Ing.Ivan Ferrazzi
CSS3
Questa sezione è stata creata per dare una panoramica iniziale a quelle che
possono essere le potenzialità introdotte dalle direttive CSS3. Per garantire una
compatibilità attraverso i diversi browser diventa indispensabile l'utilizzo di
determinati prefisse preimpostate per i vari browser in questione. I prefissi che
utilizziamo sono: -moz- (per Mozilla Firefox), -ms- (per Internet Explorer),
-webkit- (per Safari e Chrome) e -o- (per Opera). Per evitare di ripetere
continuamente il codice all'interno di vari esempi ci baseremo solamento sulle
proprietà base e quelle definite per l'utilizzo all'interno dei Mozilla Firefox. Per
una compatibilità maggiore vanno ripetute le varie proprietà modificando
semplicemente i prefissi.
Stili per i contenitori ed i loro contenuti
border-radius: h_pixel [/ v_pixel];
Questo stile permette di definire gli angoli arrotondati degli elementi:
h_pixel
v_pixel
questa proprietà ci permette di impostare le dimensioni
degli angoli in pixel. Possiamo inserire un valore (per
modificare tutti gli angoli), due valori (altosinistra/basso-destra e alto-destra/basso-sinistra), tre
valori (alto-sinistra alto-destra/basso-sinistra bassodestra), oppure quattro valori (alto-sinistra alto-destra
basso-destra basso-sinistra).
questa proprietà, se presente, definisce l'altezza
dell'rettangolo nell'angolo che andrà a definire
l'arrotondamento desiderato. h_pixel in questo caso ne
34/45
Dott.Ing.Ivan Ferrazzi
andrà a definire la larghezza.
Esempio:
div {
border-radius: 40px / 20px;
-moz-border-radius: 40px / 20px;
}
box-shadow: h_pos v_pos [blur] [spread] [color] [inset];
Questo stile permette di definire l'ombra del relativo oggetto in
questione.
h_pos
v_pos
blur
spread
color
inset
questo valore ci da la possibilità di definire lo
spostamento orizzontale dell'ombra. Questo valore è
obbligatorio.
questo valore ci da la possibilità di definire lo
spostamento verticale dell'ombra. Anche questo valore
è obbligatorio.
questo valore identifica la larghezza della sfumatura
che vogliamo dare all'ombra. Questo valore è
facoltativo.
questo valore identifica il quanto si deve allargare
l'ombra che stiamo creando. L'effetto è quello che si
ottiene allontanando o avvicinando la fonte di luce che
genera l'ombra in questione.
questo valore ci da la possibilità di definire il colore
dell'ombra.
questo parola viene aggiunta come valore per creare
un'ombra generata verso l'interno dell'oggetto in
questione.
Esempio:
div {
box-shadow: 10px 10px 5px black;
-moz-box-shadow: 10px 10px 5px black;
}
background-size: width height;
Questo stile permette di definire la grandezza dell'immagine che
inseriamo come immagine di sfondo.
width
questo valore ci da la possibilità di definire la larghezza
dell'immagine in questione. Possiamo utilizzare anche
valori percentuali se vogliamo adattare la larghezza alla
dimensione del suo contenitore.
35/45
Dott.Ing.Ivan Ferrazzi
height
questo valore ci da la possibilità di definire l'altezza
dell'immagine in questione. Possiamo utilizzare anche
valori percentuali se vogliamo adattare l'altezza alla
dimensione del suo contenitore.
Esempio:
div {
width: 200px;
height: 200px;
background-image: url(back.jpg);
background-repeat: no-repeat;
background-size: 100px 100px;
-moz-background-size: 100px 100px;
}
background-origin: box_model;
Questa proprietà ci permette di definire la parte del contenitore di
riferimento per il posizionamento dell'immagine di sfondo.
box_model
questo valore definisce la parte del contenitore di
riferimento. I valori possibili sono: border-box, paddingbox, oppure content-box.
Esempio:
div {
width: 200px;
height: 200px;
padding: 20px;
border: 5px solid black;
background-image: url(back.jpg);
background-repeat: no-repeat;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
background-origin: content-box;
-moz-background-origin: content-box;
}
text-shadow: h_pos v_pos [blur] [color];
Questo stile permette di definire l'ombra di parti testuali.
h_pos
v_pos
blur
questo valore ci da la possibilità di definire lo
spostamento orizzontale dell'ombra. Questo valore è
obbligatorio.
questo valore ci da la possibilità di definire lo
spostamento verticale dell'ombra. Anche questo valore
è obbligatorio.
questo valore identifica la larghezza della sfumatura
che vogliamo dare all'ombra. Questo valore è
36/45
Dott.Ing.Ivan Ferrazzi
color
facoltativo.
questo valore ci da la possibilità di definire il colore
dell'ombra.
Esempio:
div {
text-shadow: 2px 2px 1px black;
-moz-text-shadow: 2px 2px 1px black;
}
column-count: nr_colonne;
Questo stile permette di definire il numero delle colonne da utilizzare
all'interno di un contenitore. Attualmente è possibile definire il numero
delle colonne, ma non la larghezza delle singole.
Esempio:
div {
column-count: 3;
-moz-column-count: 3;
}
column-gap: valore;
Questo stile permette di definire lo spazio tra una colonna e l'altra.
Esempio:
div {
column-count: 3;
-moz-column-count: 3;
column-gap: 30px;
-moz-column-gap: 30px;
}
column-rule: spessore stile colore;
Questa proprietà ci permette di definire la linea separatrice tra le varie
colonne che abbiamo definito.
spessore
stile
colore
questo valore definisce lo spessore che vogliamo dare
alla linea
questo valore definisce lo stile che possiamo dare alla
linea (vedi gli stili che abbiamo utilizzato per i bordi)
questo valore permette di definire il colore della linea
da utilizzare
Esempio:
37/45
Dott.Ing.Ivan Ferrazzi
div {
column-count: 3;
-moz-column-count: 3;
column-gap: 30px;
-moz-column-gap: 30px;
column-rule: 1px solid black;
-moz-column-rule: 1px solid black;
}
Importazione di font aggiuntivi
La gestione di font aggiuntivi all'interno dei nostri siti internet fino ad ora
non era possibile. Per garantire una giusta visualizzazione del nostro sito
era indispensabile limitarsi ai font standard compatibili sui vari browser in
questione.
CSS3 mette a disposizione la possibilità di caricare la configurazione di
font aggiuntivi che possiamo depositare direttamente sul server web.
L'unica cosa che dobbiamo fare è definire un font mediante @font-face
definendo il nome che vogliamo dare al font, la posizione del file che ci
interessa, l'eventuale formato del file e le eventuali proprietà di
riferimento.
Per quanto riguada i vari formati di font dobbiamo sapere che Internet
Explorer supporta i font .eot (Embedded Open Type), mentre Firefox,
Chrome, Safari e Opera supportano i font di formato .ttf (True Type Font)
e .otf (Open Type Fonts).
Il nome del font da importare lo definiamo con font-family, la posizione
del file con src. Vediamo un piccolo esempio:
@font-face {
font-family: myfont;
src: url('segoesc.ttf'),
url('segoesc.eot') format('opentype'); /*IE*/
}
div {
font-family: myfont;
}
Notiamo quindi all'interno del @font-face la possibilità di aggiungere i vari
formati separati da una virgola dove la funzione format ci permette di
definire il formato del file che andiamo ad aggiungere. Il nuovo font viene
poi utilizzato riprendendo il nome del font all'interno dell'elemento che ci
interessa.
Nell'esempio precedente abbiamo definito un font di tipo normale. La
formattazione in grassetto dello stesso font si trova però in file diverso.
Ecco che dobbiamo quindi aggiungere un nuovo @font-face per definire
anche le proprietà relative al nuovo stile di carattere che possiamo
utilizzare. In questo caso aggiungiamo all'esempio precedente anche il
seguente blocco:
38/45
Dott.Ing.Ivan Ferrazzi
@font-face {
font-family: myfont;
src: url('segoescb.ttf'),
url('segoescb.eot') format('opentype');
font-weight: bold;
}
Qui notiamo l'utilizzo dello stesso nome, cambia però il file che
importiamo ed in più si aggiunge la proprietà di stile ne identifica le
proprietà. L'interprete HTML, avendo lo stesso nome che identifica il font
con proprietà diverse, utilizzerà proprio l'aggiunta delle proprietà in
questione (nel nostro caso il font-weight: bold) per identificare il file da
utilizzare per la visualizzazione del testo in questione.
Stili per la trasformazione degli elementi
CSS3 mette
funzioni in
trasformare
separate da
a disposizione la proprietà transform che utilizza una serie di
grado di trasformare l'aspetto degli elementi HTML. Per
un elemento possiamo utilizzare una serie di funzioni
uno spazio.
transform: translate(x_pos,y_pos);
Questa funzione permette di spostare l'elemento in questione senza
dover utilizzare la proprietà position:
x_pos
v_pos
questo valore sposta l'elemento orizzontalmente dalla
sua posizione di origine.
questo valore sposta l'elemento verticalmente dalla sua
posizione di origine.
Esempio:
div {
transform: translate(100px,50px);
-moz-transform: translate(100px,50px);
}
transform: rotate(deg);
Questa funzione permette rotare l'elemento in questione:
deg
questo valore definisce il grado di rotazione
dell'elemento. L'unità di misura da utilizzare è deg.
Esempio:
div {
transform: rotate(45deg);
39/45
Dott.Ing.Ivan Ferrazzi
}
-moz-transform: rotate(45deg);
transform: scale(x_prop,y_prop);
Questa funzione scalare l'elemento in questione:
x_prop
y_prop
questo valore definisce la larghezza di destinazione in
base a quella attuale. Il valore della larghezza attuale è
pari a 1. 2 aumenta la larghezza del doppio, mentre 0.5
la dimezza.
questo valore definisce l'altezza di destinazione in base
a quella attuale. Il valore dell'altezza attuale è pari a 1.
2 aumenta l'altezza del doppio, mentre 0.5 la dimezza.
Esempio:
div {
transform: scale(2,2);
-moz-transform: scale(2,2);
}
transform: skew(x_deg,y_deg);
Questa funzione permette di roteare intorno all'asse x ed intorno all'asse
y:
x_deg
y_deg
questo
all'asse
questo
all'asse
valore definisce i
x. L'unità di misura
valore definisce i
y. L'unità di misura
gradi di rotazione intorno
da utilizzare è deg.
gradi di rotazione intorno
da utilizzare è deg.
Esempio:
div {
transform: skew(10deg,20deg);
-moz-transform: skew(10deg,20deg);
}
Effetti di transizione
CSS3 mette a disposizione una serie di animazioni tra le quali troviamo
appunto l'effetto di transizione. L'effetto di transizione viene attivato su
una o più proprietà dell'elemento stesso. Nel momento in qui una delle
proprietà indicate subisce una variazione, questa non sarà istantanea, ma
si passerà in maniera graduale da quella che è la situazione attuale a
quella nuova definita.
L'effetto di transizione va sempre definito indicando la proprietà da
monitorare ed il tempo di durata della transizione. L'unità di misura da
40/45
Dott.Ing.Ivan Ferrazzi
utilizzare è s (seconds). Le coppie di valori che definiscono le varie
proprietà di transizione vengono elencate separate da una virgola (,).
Vediamo ora un piccolo esempio:
div {
width: 200px;
height: 200px;
transition: width 2s, height 2s;
-moz-transition: width 2s, height 2s;
}
div:hover {
width: 300px;
height: 300px;
}
In questo caso attiviamo l'effetto di transizione sulla larghezza e
sull'altezza dell'elemento in questione. Quando ci passiamo sopra con il
mouse facciamo partire l'effetto di transizione che durerà 2 secondi per
passare dagli attuali 200 pixel ai 300 pixel di destinazione.
Le proprietà che possiamo aggiungere all'effetto di transizione sono:
transition-timing-function: linear|ease|ease-in|ease-out|ease-in-out|
cubic-bezier(n,n,n,n);
Questa funzione permette di definire la funzione da utilizzare per l'effetto
di transizione.
transition-delay: seconds;
Questa funzione permette di definire in secondi il tempo di attesa da
quando è avvenuta la modifica della proprietà a quando deve partire
l'effetto di transizione.
Esempio:
div {
width: 200px;
height: 200px;
transition: width 2s, height 2s;
-moz-transition: width 2s, height 2s;
transition-timing-function: linear;
-moz-transition-timing-function: linear;
transition-delay: 2s;
-moz-transition-delay: 2s;
}
div:hover {
width: 300px;
height: 300px;
}
41/45
Dott.Ing.Ivan Ferrazzi
Effetti di animazione
CSS3 mette a disposizione dei blocchi @keyframes che permettono di
definire una sorta di timeline dell'animazione realizzare. La timeline
presente all'interno del blocco citato viene suddiviso in percentuali, dove
l'inizio della timeline è definita dal valore 0% (oppure la parola chiave
from), mentre la fine è definita dal valore 100% (oppure la parola chiave
to).
Ad ogni punto presente all'interno della timeline viene definita una classe
di stile dove possiamo definire tutte le proprietà dell'oggetto in
esattamente quel momento.
Vediamo un semplice esempio:
@keyframes myanim {
from {background-color: red;}
to {background-color: yellow;}
}
@-moz-keyframes myanim {
from {background-color: red;}
to {background-color: yellow;}
}
div {
width: 200px;
height: 200px;
background-color: yellow;
}
div:hover {
animation: myanim 2s;
-moz-animation: myanim 2s;
}
In questo modo definiamo un'animazione al quale diamo il nome myanim
che parte dallo sfondo rosso per arrivare in maniera graduale allo sfondo
giallo. L'animazione viene fatta partire quando il mouse entra all'interno
dell'elemento in questione e terminerà dopo 2 secondi. Al termine
dell'animazione l'elemento ritornerà alle sue proprietà di origine.
L'animazione può però anche essere fatta partire subito senza l'utilizzo di
un particolare evento. Vediamo l'esempio seguente:
@keyframes myanim {
0% {background-color: red;}
50% {background-color: yellow;}
100% {background-color: red;}
}
@-moz-keyframes myanim {
0% {background-color: red;}
50% {background-color: yellow;}
100% {background-color: red;}
}
42/45
Dott.Ing.Ivan Ferrazzi
div {
width: 200px;
height: 200px;
background-color: yellow;
animation: myanim 2s linear infinite;
-moz-animation: myanim 2s linear infinite;
}
Come possiamo notare dall'esempio abbiamo aggiunto due nuovi falori il
linear definisce l'effetto animazione da un passaggio all'altro (vedi effetti
di transizione), mentre infinite ci permette di attivare l'animazione in
loop.
43/45
Dott.Ing.Ivan Ferrazzi
LE VARIE UNITA'
Le unità di misura per le dimensioni
Unità
cm
mm
in
pc
px
em
ex
Descrizione
centimetri
millimetri
pollici
pica(=12punti)
pixel
lun. lettera
alt. carattere
Esempi
10cm
10mm
0,25in
2pc
25px
2,5em
3ex
I valori assoluti
Valore
xx-small
x-small
small
medium
large
x-large
xx-large
Sintassi/Descrizione
font-size: xx-small
font-size: x-small
font-size: small
font-size:medium
font-size:large
font-size:x-large
font-size:xx-large
44/45
Dott.Ing.Ivan Ferrazzi
I valori relativi
Valore
smaller
larger
Sintassi/Descrizione
font-size:smaller
font-size:larger
I valori assoluti
Valore
nome
esadecimale
rgb
perc.rgb
Sintassi/Descrizione
color: red
color: #00FF00
color: rgb(0,255,0)
color: rgb(0%,100%,0%)
I valori di posizionamento
Attributo
Parametro
position
absolute - static - relative
left
cm - mm - in - pt - pc - px
- ex - em
top
cm - mm - in - pt - pc - px
- ex - em
height
width
cm - mm
cm - mm
-
- in - pt - pc - px
ex - em
- in - pt - pc - px
ex - em
overflow
visible - hidden - scroll
visibility
visible - hidden
Z-index
xx numeri positivi
45/45
Descrizione
Il modo in cui può essere
posizionato un box contenitore.
la distanza del contenitore dal
margine sinistro della finestra del
browser.
la distanza del contenitore dal
margine superiore della finestra
del browser.
Altezza
del
contenitore
se
posizionato in modo absolute.
Larghezza del contenitore se
posizionato in modo absolute.
Contenuto che supera Larghezza
Altezza del box contenitore.
Visibilità o meno di un box
contenitore.
L'ordine
di
priorità
di
visualizzazione
di
un
box
contenitore.