Oreste
Signore, <oreste@w3.org>
Responsabile Ufficio Italiano W3C
Area della Ricerca CNR - via Moruzzi, 1 - 56124 Pisa
Master in Comunicazione e New Media
Ateneo Pontificio Regina
Apostolorum
Corso: Architettura del
Web
Presentazione: http://www.w3c.it/education/2012/upra/css/
Versione pdf: http://www.w3c.it/education/2012/upra/css.pdf
Formato XHTML realizzato usando il tool Slidy di Dave
Raggett.
Slidy
dovrebbe funzionare in tutti i browser moderni con
Javascript abilitato. Usare freccia destra/sinistra per
muoversi da una slide all' altra.
Vedi la pagina di aiuto
di Slidy per ulteriori informazioni.
pre { display: block; font-size: 16pt; font-weight: bold; }
,
"
{ }
" ed è costituita da
coppie proprietà/valore
(property/value)separate da
":
", che terminano ognuna con
";
"
elemento1, elemento2 { proprietà:valore; proprietà:valore; }
p {color: red;}
p
indica che la regola
va applicata a tutti gli elementi p
del
documento
color
red
h1, h2 {color: #00ff00; font-size: 24px;
}
h1
e
h2
saranno in verde
h1
e
h2
saranno con caratteri di dimensione
24px
@media
specifica per quali
“ media types” (separati da virgole) sono
valide un insieme di regole (racchiuse tra parentesi
graffe)
@media print { body { font-size: 10pt; } } @media screen { body { font-size: 13px; } } @media screen, print { body { line-height: 1.2; } }
all
: adatto per tutti
i dispositivi
braille
: per i
dispositivi con risposta braille tattile
embossed
: per le
stampanti braille
handheld
: per i
palmari (tipicamente schermi piccoli, larghezza di
banda limitata)
print
: per materiale
presentato a pagine e per la visione su schermo in
modalità “print preview”. Vedi
paged
media per le informazioni sulla formattazione
specifiche per i dispositivi paginati.
projection
: per le
presentazioni mediante proiettore. Vedi paged
media.
screen
:
essenzialmente per gli schermi a colori dei PC
speech
: per
sintetizzatori vocali (CSS2 aveva il media type
“aural
”). Vedi aural style
sheets per dettagli
tty
: per dispositivi
con caratteri di dimensione fissa (telescriventi,
terminali, dispositivi mobili con display dalle
potenzialità limitate)
tv
: per dispositivi
di tipo televisivo (bassa risoluzione, colore,
scrolling limitato, suono disponibile)
@media print { body { margin-left: 3cm; margin-right: 3cm; margin-top: 3cm; margin-bottom: 3cm; background-color: #ffffff; color: #000000; font-size: 10.5pt; font-family: Arial, Helvetica, sans-serif; } h1, h2, h3 { color: #0000ff; } h1.title { font-size: 18pt; font-family: Arial, Helvetica, sans-serif; font-weight: bold } … .leftMenu {display: none;} … }
<h2 style="color: red; text-transform:uppercase;">Testo intestazione di livello 2</h2>
head
di un documento HTML
... <head> <title>titolo della pagina</title> <style type="text/css"> h1 { color: red; } </style> </head> <body> <h1>Intestazione</h1> ...
<link>
nella
componente head
del documento HTML
... <head> <title>titolo della pagina</title> <link type="text/css" rel="stylesheet" href ="/stili/nomefile.css" /> </head> ...
style
... <head> <title>titolo della pagina</title> <style type="text/css"> @import url(/stili/nomefile.css); </style> </head> ...
html
head
e
body
font-family
)
prendono il valore specificato per l' elemento padre
h1 { color: red; }e questa parte di codice xhtml
<h1>Un <em>titolo</em><h1>"titolo" sarà rosso e corsivo (corsivo perché em per definizione viene cosi rappresentato ma potrebbe non essere così)
em { color: green; font-style: normal; }
<h1>
e "titolo" sarà di colore
verde, non rosso, e non corsivo ma normale
p
o h1
, inline per
strong
, em
o
a
, mentre per XML è inline)
p { color: blue !important; font-family: serif;}
<p> bla bla <cite id="id1" class="particolare"> bla bla bla </cite> </p>
cite
per il suo id
sarà
preferita a quella che seleziona cite
per il
suo class
cite
per il suo
class
sarà preferita a quella che
seleziona cite
contenuto negli elementi
p
cite
Le proprietà CSS possono essere nomi o valori - I nomi sono tutte parole chiave CSS
display:
none;
" in display o come solid in
"border-style: solid;
"
margin-top: 0.5in
), 12pt
(font-size: 12pt
)
{background-image:url(http://www.isti.cnr.it/immagini/carta.gif}
{color:
#CC0033}
Nome | Valore |
---|---|
display | none |
font-style | italic |
margin-top | 0.5in |
font-size | 12pt |
border-style | solid |
color | #CC0033 |
background-color | white |
background-image | url(http://www.isti.cnr.it/immagini/sfondoblu.gif) |
list-style-image | url(/immagini/pallinorosso.png) |
line-height | 120% |
em
: la larghezza della lettera m del
font corrente
ex
: l'altezza della lettera x del font
corrente
px
: la grandezza di un pixel (si
assume uguale a 0.75pt)
p { border-right-width: 1em; border-left-width: 1em; border-top-width: 0.5ex; border-bottom-width: 0.5ex; }
p:first-letter { font-size: 300%; } em { font-size: 120%; }
Del testo è possibile controllare sia gli aspetti relativi al font che quelli relativi all'organizzazione del testo nella scatola di riferimento:
Le scatole hanno delle proprietà che permettono di definire
La larghezza della scatola è data dalla somma della larghezza del contenuto (ovvero dell'elemento testo o immagine) + quella delle aree dei padding, bordi e margini.
<div>
(division) è
un elemento block-level
<span>
(span of words)
è un elemento inline
class
<div class="nomeclasse"> <p> In una div possono comparire elementi inline, e anche <span class="specificaSpan"> parole che assumono le caratteristiche</span> assegnate alla classe "specificaSpan".<br /> La div può avere caratteristiche di visualizzazione particolari. </p> </div>
html5 introduce delle specializzazioni di div: nav, footer, … sono elementi strutturali che potranno essere usati per specificare parti strutturali della pagina
Come si inseriscono le scatole nello spazio di visualizzazione:
Proprietà che controllano il tipo di posizionamento e quello di scatola:
un paragrafo che si estende su alcune righeper mostrare come sono posizionati vari elementi all'interno della pagina XHTML
ancora un paragrafo con elementi inline grassetto e italic
float
permette di
posizionare un elemento in modo “fluido”
float:left;
o float:right;
posiziona l'elemento il più a sinistra o il
più a destra dello spazio disponibile
p { display: block; margin-bottom: 10px; } h1 { display: block; margin-bottom: 10px; }
p, h1 { display: block; margin-bottom: 10px; }
Tipo | Significato (la regola si applica a ...) | Esempio |
---|---|---|
selettore universale | tutti gli elementi nel documento |
*
|
element type | tutti gli HTML elements del tipo del selettore |
h1
|
class selector | tutti gli elementi HTML che precedono il punto (o tutti, se non è specificato nulla) la cui definizione li rende elementi della classe il cui nome segue il punto |
.articletitle h1.important
|
ID selector | l' unico elemento nel documento il cui attributo coincide con la stringa che segue il simbolo # |
#special3
|
pseudo-element selector (CSS2) | le istanze dello pseudo-element |
p:first-letter
|
pseudo-class selector (CSS2) | istanze della pseudo-classs, la cui presentazione può variare a seguito dell' interazione dell' utente con la pagina |
a:hover
|
descendant selector | tutti gli elementi del tipo più a destra di una lista (separata da spazi), solo quando l' element type discende dal tipo alla sua sinistra |
p em
|
parent-child selector (CSS2) | tutti gli elementi del tipo specificato a destra del simbolo ">", che sono figli degli elementi a sinistra del simbolo ">" (è una forma più specifica del descendant selector) |
body > p
|
adjacent selectors (CSS2) | tutti gli elementi del tipo specificato a destra del segno "+", adiacenti (nel codice HTML) agli elementi a sinistra del segno "+" |
h1+h2
|
attribute selectors (CSS2) | attributi che corrispondono al profilo specificato nelle parentesi quadre |
p[align]
|
La regola si applica a:
tutti gli elementi nel documento
* { color: red; font-style: ; }
La regola si applica a:
tutti gli HTML elements del tipo del selettore
body { color: white; background-color: black; }
La regola si applica a:
tutti gli elementi HTML che precedono il punto (o
tutti, se non è specificato nulla) la cui
definizione li rende elementi della classe il cui nome
segue il punto
.blue { font-family: verdana, arial, sans-serif; color: #0000ff; }
Saranno in blu tutti gli elementi per i quali si
specifica
class="blue"
(esempio)
Si possono definire gli elementi che possono appartenere a una classe (esempio):
h1,h2.blue { font-family: verdana, arial, sans-serif; color:#0000ff; }
La regola si applica a:
l' unico elemento nel documento il cui attributo
coincide con la stringa che segue il simbolo #
La regola si applica a:
le istanze dello pseudo-element
(è una proprietà CSS2)
p:first-letter { font-size: 300%; }
p:first-line { font-variant: small-caps; }
La regola si applica a:
istanze della pseudo-class, la cui presentazione
può variare a seguito dell'
interazione dell' utente con la
pagina
(è una proprietà CSS2)
a:link
non visitato, link non attivo
a:hover
mouse sopra
a:active
attivato (cliccato col mouse o
attivato con altro dispositivo)
a:visited
visitato
:focus
"l'oggetto a fuoco" (l'oggetto
selezionato)
:first-child
il primo figlio dell'elemento
:left
le pagine a sinistra di un documento
(generalmente per la stampa)
:right
le pagine a destra
p cite { color: red; }
<p>paragrafo con <cite>citazione</cite> interna</p>
paragrafo con citazione interna
*
):
*:
La regola si applica a tutti gli elementi nel documento
Avo Discendente
D discendente di APadre>Figlio
F figlio di PFratello+PrimoFratello
PF primo fratello di FH2+P { color: red; }
E[attr]
elementi E che hanno un attributo attrE[attr="valore"]
elementi E che hanno un attributo attr il cui valore è "valore"A[NAME] { color: green; }
La regola si applica a:
tutti gli elementi del tipo più a destra di
una lista (separata da spazi), solo quando l' element
type discende dal tipo alla sua sinistra
La regola si applica a:
tutti gli elementi del tipo specificato a destra del
simbolo ">", che sono figli degli elementi a sinistra
del simbolo ">" (è una forma più
specifica del descendant selector)
(è una proprietà CSS2)
La regola si applica a:
tutti gli elementi del tipo specificato a destra del
segno "+", adiacenti (nel codice HTML) agli elementi a
sinistra del segno "+"
(è una proprietà CSS2)
La regola si applica a:
attributi che corrispondono al profilo specificato
nelle parentesi quadre
(è una proprietà CSS2)
[attribute]
– matches if the
attribute is defined at all for the element(s)
[attribute="setting"]
– matches only
if the attribute is defined as having the value of
setting
[attribute~="setting"]
– matches
only if the attribute is defined with a space-separated
list of values, one of which exactly matches "setting"
[attribute|="setting"]
– matches
only if the attribute is defined with a hyphen-
separated list of "words" and the first of these words
begins with setting
ul, ol { counter-reset: item }
li { display: block; }
li:before { content: counters(item, "."); counter-increment: item }
numera liste e sottoliste nel formato
1
1.1
1.1.1
...
Tecniche di accessibilità WCAG 2.0
molte sono le nuove funzionalità che aggiunge CSS3, alcuni esempi di effetti che in genere troviamo in programmi di grafica professionali (provati solo con firefox 3.5):
(rif. cap. 3 Wium Lee & Boss)
em
per creare
style sheet scalabili
em
per
impostare il font-size
Realizzare una pagina XHTML 1.1 con tre blocchi di
testo
senza tabelle (a meno che non contengano dati e siano
all'interno di un blocco)
senza posizionamenti assoluti
Una soluzione
Collegarsi al sito http://jigsaw.w3.org/css-validator/ e validare lo stile di una pagina del proprio ente
Eliminare tutti gli elementi e gli attributi di presentazione della pagina e realizzare un foglio di stile
validare il foglio di stile (http://validator.w3.org)
Trasformare la pagina (con un editor testi) in XHTML1 1.1
Avvalersi di Tidy per correggere il codice
Realizzare una pagina XHTML 1.1 con un form impaginato senza tabelle
Una soluzione realizzata utilizzando varie tecniche WCAG 2.0
<div>
per la l'impaginazione (
non sono ammesse tabelle di layout)
<h1>
e
<h2>
Preparare un mini sito Web costituito da tre documenti XHTML1.1 collegati tra loro:
Domande?
... e risposte
Se non è sul Web non esiste ...
... troverete sul sito dell' Ufficio (http://www.w3c.it/)
le slide (http://www.w3c.it/education/2012/upra/css)
Queste slide fanno parte del materiale predisposto per il corso Architettura del Web