CSS
Cristina Gena
[email protected]
http://www.di.unito.it/˜cgena/teaching.html
[email protected]
1
CSS: ereditarietà
Una importante proprietà dei fogli di stile CSS è l'ereditarietà:
ogni elemento "annidato" (incluso) in un altro ("figlio" di un altro)
ne eredita tutte le proprietà; per esempio:
In esame.html:
P
<p>l'esame si compone di due parti:
una <b>relazione scritta</b> e
B B
una <b>verifica orale</b></p>
I due elementi <B>...</B> sono "annidati" nell'elemento
<P>...</P> (sono figli di <P>) ⇒ ne ereditano le proprietà: se,
nel foglio di stile, ho definito:
p
{font-family:Verdana;
font-size:10pt;
color:blue}
anche il testo degli elementi <B>...</B> sarà Verdana, 10
punti, blu
[email protected]
2
CSS: le classi
E' possibile inoltre definire delle classi: insiemi di stili
"astratti" che possono poi essere associati, nel file .html, a
vari elementi (tag); per esempio:
p.white {font-family:Verdana;
font-size:10pt;
color:white}
classe che potrà essere richiamata solo all'interno del
tag <p class=“white”>
[email protected]
3
CSS: le classi
invece
.red{font-family: Verdana;
font-size12pt;
color:red;
font-weight:bold}
è una classe che potrà essere richiamata all'interno di
qualunque tag (per cui hanno senso quelle proprietà,
per esempio
<p class=“red”>
<span class=“red”>
<ul class=“red”>
[email protected]
4
CSS: gli indentificatori
ATTENZIONE
Se uno stile si applica ad un solo specifico elemento della
pagina si usa la proprietà ID.
#rosso{color: #F00}
<div id=" rosso ">
Se invece si prevede di usarlo più volte, ovvero su più
elementi della pagina, si usa una classe.
.rosso{color: #FF0000;}
<p class=" rosso">
<div class=" rosso ">
[email protected]
5
CSS: le pseudo-classi
Le pseudoclassi distinguono gli oggetti in base ad
alcune delle loro proprietà intrinseche, dunque
non richiedono una marcatura o una notazione
particolare per essere specificate
test/pseudoclassi.html
[email protected]
6
CSS: le pseudo-classi
a.dams:link, a.dams:visited {
font-family: Arial, Helvetica, sans-serif;
color: #000000;
font-weight: bold;
}
a.dams:hover {
font-family: Arial, Helvetica, sans-serif;
color: #000000;
font-weight: bold;
text-decoration:none
}
Nell’html:
<a href=“http://www.dams.unito.it" class="dams">
Corso di studi in Dams
</a>
[email protected]
7
CSS: gli pseudo-elementi
Gli pseudo-elementi selezionano una sotto-parte di
un elemento, senza che sia necessario introdurre
un'apposita marcatura xhtml
test/pseudoelementi.html
[email protected]
8
CSS: i Selettori
•  Selettore universale: *
* {…}
Il selettore universale serve a selezionare tutti
gli elementi di un documento.
•  Selettore di discendenza
#pippo p {…}
Questa regola si applica a tutti i paragrafi
contenuti in body
[email protected]
9
CSS: i Selettori
•  Selettore figlio
body > p {…}
Questa regola si applica a tutti i paragrafi
direttamente contenuti in body (solo il primo
livello di discendenza)
NO!
[email protected]
10
CSS: i Selettori
•  Selettore fratello
h1 + p {…}
I due elementi si trovano, nell’html, uno di
seguito all’altro
<h1>Titolo</h1>
<p>Primo paragrafo</p>
<p>Secondo paragrafo</p>
[email protected]
11
CSS: il Selettore d’attributi
a[accesskey] {…}
a[title~=esterno] {…}
<a href=“http://www.di.unito.it”
title=“link esterno” accesskey=“9”>
[email protected]
12
Fogli di stile CSS
Cascading Style Sheets 2
http://www.w3.org/TR/CSS21/
http://www.w3schools.com/css/css_syntax.asp
[email protected]
13
3 proprietà speciali di Css
Sono display, float e clear
Display: Avevamo chiarito in quella sede la fondamentale
distinzione tra elementi blocco, inline e lista che è alla base
di (X)HTML. Quello che si era detto può essere rimesso in
discussione da questa proprietà: la funzione di display è di
definire il trattamento e la presentazione di un elemento.
Float: con questa proprietà è possibile rimuovere un elemento
dal normale flusso del documento e spostarlo su uno dei lati
(destro o sinistro) del suo elemento contenitore. Il contenuto
che circonda l'elemento scorrerà intorno ad esso sul lato
opposto rispetto a quello indicato come valore di float (in
pratica ripete ciò che faceva align con le immagini in HTML)
Clear: questa proprietà serve a impedire che al fianco di un
elemento compaiano altri elementi con il float. Si applica solo
agli elementi blocco.
esempi
[email protected]
14
CSS: alcune cose sui blocchi flottanti
•  Un box flottante se non ha una width specifica assume la
dimensione necessaria a contenere gli elementi al suo interno
•  Il box flottante è estratto dal normale flusso, e sta a
sinistra o a destra
•  Gli elementi che contengono i box flottanti si comportano
come se fossero vuoti
•  Quando più box flottanti sono disposti uno di seguito
all’altro si dispongono sulla stessa linea. Se non c’è spazio,
vanno a capo
[email protected]
15
CSS: alcune cose sui blocchi flottanti
Gli elementi che contengono i box flottanti si
comportano come se fossero vuoti
[email protected]
16
CSS: alcune cose sui blocchi flottanti
Se si vogliono evidenziare questi
elementi contenitori vanno resi
anche essi flottanti
[email protected]
17
CSS: La proprietà visibility
•  Ammette i seguenti valori:
–  visible
–  hidden: non si vede ma è presente nel flusso della pagina
–  collapse: rimuove intere righe o colonne di una tabella, ma
non è supportato da tutti i browser
NB: display:none non si vede e non è presente nel
flusso della pagina
[email protected]
18
Css il: posizionamento
E' con queste regole che si può pensare di realizzare il layout
delle nostre pagine solo con i CSS e giungere così alla
definitiva e reale separazione tra presentazione e struttura!
Position è la proprietà fondamentale per la gestione della
posizione degli elementi, di cui determina la modalità di
presentazione sulla pagina. Si applica a tutti gli elementi
(static, absolute, fixed, relative).
[email protected]
19
Posizionamento: cosa dice il w3c
http://www.w3.org/TR/CSS2/visuren.html#comparison
Boxes in the normal flow belong to a formatting context,
which may be block or inline, but not both simultaneously.
Block boxes participate in a block formatting context.
Inline boxes participate in an inline formatting context.
[email protected]
20
Posizionamento: cosa dice il w3c
http://www.w3.org/TR/CSS2/visuren.html#comparison
static
The box is a normal box, laid out according to the
normal flow. The 'left' and 'top' properties do not apply.
static riguarda il comportamento normale del box,
anche quando non si specifica position: static
[email protected]
21
Posizionamento: cosa dice il w3c
http://www.w3.org/TR/CSS2/visuren.html#comparison
relative
The box's position is calculated according to the normal flow
(this is called the position in normal flow). Then the box is
offset relative to its normal position. When a box B is
relatively positioned, the position of the following box is
calculated as though B were not offset
Offset: scostamento dal box rispetto alla posizione originale
assunta dal box stesso
L’offset si assegna tramite le proprietà top, right bottom, left
[email protected]
22
Posizionamento relativo
[email protected]
23
CSS: La proprietà z-index
•  Quando i blocchi si sovrappongono, l’ordine di
sovrapposizione può essere determinato con la proprietà zindex
•  I blocchi con z-index maggiore comprono quelli minori:
z-index: 10 copre z-index: 8;
[email protected]
24
Posizionamento: cosa dice il w3c
http://www.w3.org/TR/CSS2/visuren.html#comparison
absolute
The box's position (and possibly size) is specified with the
'left', 'right', 'top', and 'bottom' properties. These
properties specify offsets with respect to the box's
containing block. Absolutely positioned boxes are taken out
of the normal flow. This means they have no impact on the
layout of later siblings. Also, though absolutely positioned
boxes have margins, they do not collapse with any other
margins.
Un blocco posizionato in modo assoluto può essere collocato
in qualunque punto della pagina, indipendentemente dagli
altri elementi
25
[email protected]
CSS: Il posizionamento assoluto
•  Il blocco posizionato in modo assoluto è estratto dal normale
flusso della pagina
•  La collocazione del blocco assoluto è stabilita con le distanze
top, right bottom, left
•  Il box di riferimento secondo cui calcolare le suddette
distanze è il primo blocco progenitore posizionato in modo
non statico (absolute o relative) oppure l’elemento HTML
•  Se la proprietà width del blocco assoluto non è impostata,
esso sarà grande tanto quanto i suoi contenuti
[email protected]
26
CSS: Il posizionamento assoluto e IE
•  Su IE è sempre bene impostare la larghezza e/o l’altezza
del blocco contenente il blocco con posizionamento assoluto
per evitare problemi di cattiva interpretazione del browser.
[email protected]
27
Posizionamento: cosa dice il w3c
http://www.w3.org/TR/CSS2/visuren.html#comparison
fixed
The box's position is calculated according to the 'absolute' model,
but in addition, the box is fixed with respect to some reference.
In the case of continuous media, the box is fixed with respect to
the viewport (and doesn't move when scrolled). In the case of
paged media, the box is fixed with respect to the page, even if
that page is seen through a viewport (in the case of a printpreview, for example). Authors may wish to specify 'fixed' in a
media-dependent way. For instance, an author may want a box to
remain at the top of the viewport on the screen, but not at the
top of each printed page. The two specifications may be
separated by using an @media rule, as in:
@media screen { H1#first { position: fixed } }
@media print { H1#first { position: static } }
Il posizionamento fisso è simile a quello assoluto, ma il riferimento
per il posizionamento è sempre quello della finestra del browser.
28
NON è supportato da IE
[email protected]
Css: dentro il box
overflow: visible; autorizza il contenuto ad espandersi oltre il
suo contenitore. E' il valore impostato di default.
overflow: hidden; Si vieta al contenuto di oltrepassare il suo
contenitore. In questo caso il contenuto quindi verrà
'tagliato'.
overflow: scroll; Anche se il contenuto non eccede il
contenitore, il contenitore avrà le barre di scorrimento.
overflow: auto; Se necessario, il contenitore avrà una o tutte e
due le barre di scorrimento.
[email protected]
29
Esempi: la centratura di un blocco
Esempio di centratura orizzontale con due colonne
CAP4/4.4.html, CAP4/4.5.html
Esempio di centratura verticale CAP4/4.1.html
[email protected]
30
Esempi: layout a due colonne
•  Esempio di layout a due colonne con intestazione e piè di
pagina verticale CAP4/4.7.html
•  Stesso esempio con i bordi CAP4/4.9.html
•  Layout a due colonne colonne liquide senza bordi
CAP4/4.16.html, e con bordi CAP4/4.20.html
[email protected]
31
Esempi di menu
•  Si trovano tutti nella cartella CAP5
Si consiglia la lettura del libro
CSS guida completa
Di Gianluca Troiani
Apogeo
[email protected]
32
Scarica

CSS