JavaScript e CSS

Transcript

JavaScript e CSS
JavaScript e CSS
1
Pasqualetti Veronica
CSS
C
Cascading
di Style
St l Sheets
Sh t
2
 Linguaggio per modificare lo stile delle pagine
web
 I fogli di stile (CSS):



Servono per facilitare
S
f ili
lla creazione
i
di pagine
i HTML con un
aspetto uniforme
P
Permettono
tt
di separare il contenuto
t
t di un d
documento
t d
da
aspetti legati alla sua presentazione
Possiamo “dimenticare”
dimenticare alcuni tag e attributi HTML
CSS
3
Vantaggi
 Permettono di modificare il look & feel di un
documento in modo efficiente
 Lo stesso stile può essere applicato a più documenti
 Il sorgente HTML è più “pulito”
 Si possono progettare pagine
i HTML per più
iù b
browser
 Il Consorzio p
per la standardizzazione del linguaggi
g gg
per il web (W3C) suggerisce di usare i CSS perché
facilitano la progettazione e la modifica delle pagine
HTML
CSS: blocchi
4
 Ogni documento HTML può essere visto come un
insieme di blocchi (contenitori) sui quali si
può agire con stili diversi
 I tag
t HTML definiscono
d fi i
i blocchi
bl hi
 Per ogni blocco si può specificare uno stile che ne
descrive l’aspetto
CSS: regole
5
 Un foglio di stile è una collezione di regole stilistiche
che definiscono il look degli elementi
 Ogni regola è costituita da un selettore cui è associato
un elenco di proprietà. Ad ogni proprietà si associa
un valore
selector {
property1 : value1;
property2
p
p y : value2;;
…
propertyN : valueN;
}
CSS: regole - esempio
6
 Un selettore può essere un tag HTML
h1 { color:#dd5500; font-family:Arial; }
p{
margin top:50;
margin-top:50;
color:blue;
font-style:italic;
}
CSS: dove si scrivono?
7
 Le
L regole
l stilistiche
tili ti h possono essere scritte
itt nella
ll parte
t
<head> usando il tag <style>
<style
y type="text/css“>
yp
/
regole per definire gli stili
</style>
 <style> può anche essere usato come attributo di altri tag
HTML
<h1 style="color:red; text-transform:capitalize;“>
P
Prova
CSS per h
h1
</h1>
 Il metodo migliore è quello di scrivere gli attributi di stile in
un file esterno, che può essere condiviso da più file
HTML. Il file che contiene gli stili deve essere un con
estensione .css
css
<head><link rel="stylesheet” type="text/css”
href="stile.css”></head>
CSS e Javascript
8
 Una delle caratteristiche più utili di Javascript, e del
DOM in particolare, è la possibilità di aggiungere e
modificare stili CSS degli elementi di pagina
 E’ possibile
ibil aggiungere
i
e/o
/ modificare
difi
singole
i
l
dichiarazioni CSS grazie alla proprietà style di ogni
elemento
l
DOM
DOM.
esempio:
var el=document.getElementById("bigtext");
y
5 p ;
el.style.fontSize="50px";
CSS e Javascript: regole generali
accedere
d
alle
ll proprietà
i tà CSS
9
 Per le proprietà CSS composte da una singola parola,
l equivalente Javascript è la proprietà stessa, mentre
l'equivalente
per le proprietà separate da un trattino, questo
sparirà e trasformerà in maiuscola la lettera
successiva (per esempio border-width diventa
borderWidth)
esempio:
var el=document.getElementById(“contorno");
l d
t tEl
tB Id(“
t
")
el.style.borderWidth=“10px";
CSS e Javascript: regole generali
accedere
d
alle
ll proprietà
i tà CSS ((2))
10
 float è una parola riservata in JavaScript: gli
equivalenti saranno quindi cssFloat per browser
quali Opera, Mozilla e Safari, e styleFloat per
Internet Explorer.
Explorer
Basterà impostarle entrambe per ottenere il risultato
voluto in maniera cross-browser:
cross browser:
var el=document.getElementById("box");
el.style.styleFloat="left";
l t l t l Fl t "l ft"
el.style.cssFloat="left";
CSS e Javascript:
modificare
difi
lo
l style
t l HTML
11
 E’ anche possibile intervenire sull'attributo HTML style
degli elementi di pagina, proprio come se si impostasse
uno stile in linea,
linea attraverso il metodo setAttribute
 var str = "float:right;width:10em;border:1px
float:right;width:10em;border:1px dotted
#CCC;padding:5px“;
var divs = document.getElementsByTagName("div");
f (i
for(i=0;i<divs.length;i++){
i di l
h i ){
if(divs[i].className==“miodiv")
divs style setAttribute("cssText"
divs.style.setAttribute(
cssText ,str);
str);
}
CSS e javascript:
modificare
difi
ttramite
it lle classi
l i
12
 La proprietà className consente di accedere sia in
lettura che in scrittura alle classi CSS attribuite sia nel
codice che da Javascript stesso.
stesso
 Possiamo attribuire la classe "open" all'elemento con
id= menu :
id="menu":
var el=document.getElementById("menu");
el.className="open";
In questo modo si perderà l'informazione di altre
eventuali classi assegnate all
all'elemento
elemento con id=menu.
id=menu Una
soluzione è accodare la classe:
var el=document.getElementById("menu");
el.className+="
l l N
" open";
"
Lettura di valori CSS da Javascript
13
 Attraverso la proprietà style degli elementi DOM è
possibile accedere a proprietà CSS in Javascript
 Mettiamo nella variabile color il colore di sfondo del
di id="content“
div
id "
t t“
var el=document.getElementById("content");
var color=el.style.backgroundColor;
l
l
l b k
dC l
 PROBLEMA: la variabile color conterrà
effettivamente un valore non nullo solo se la
proprietà CSS è stata in precedenza impostata
mediante Javascript.
Lettura di valori CSS da Javascript:
p soluzione
14
 PROBLEMA: leggiamo un valore non nullo solo se la
proprietà CSS è stata in precedenza impostata
mediante Javascript.
 SOLUZIONE:
SOLUZIONE il metodo
t d
document.defaultView.getComputedStyle del
DOM consente di accedere
d
a valori
l i CSS non
precedentemente impostati mediante Javascript.
Una piccola differenza con Internet Explorer, che
p
invece del metodo p
proprietario
p
dispone
currentStyle
Esempio soluzione lettura CSS
15
function getStyleProp(x,prop){
if(x.currentStyle)
return(x currentStyle[prop]);
return(x.currentStyle[prop]);
if(document.defaultView.getComputedStyle)
(
g
p
y ( , )[
return(document.defaultView.getComputedStyle(x,'')[
prop]);
return(null);
}
 Altri problemi: spesso i valori restituiti dalla funzione
sono differenti a seconda del browser
browser. Per esempio
esempio, per
ciò che riguarda i colori di sfondo e del testo in Internet
p
q
questi vengono
g
restituiti in formato
Explorer
esadecimale, in Opera e Firefox/Mozilla in rgb, etc.
Esempio 1 di interazione
CSS e JavaScript
J
S i t
16
In q
questa pagina
p g
èp
possibile modificare lo stile di
visualizzazione selezionando dalla tendina.
Il codice è consultabile nell
nell’esempio
esempio 7.
Riferimenti JavaScript
17
 http://javascript.html.it/ (tutorial ed esempi)
 http://www.javascript.com/
http://www javascript com/ (documentazione e
script)
 http://www.javascriptsource.com/
h
(esempi e script)
 http://www.webmasterpoint.org/programmazione/j
p //
p
g/p g
/j
avascript/ (appunti ed esempi)