Indice

Logo Ufficio Italiano W3C

Logo CNR

Logo ISTI

 

 

 

 

 

  Valid XHTML 1.1! Valid CSS!

CSS

Massimo Martinelli
massimo AT w3c [DOT it

Ufficio Italiano W3C, CNR-ISTI

Area della Ricerca CNR

via Moruzzi, 1

56124 Pisa


logo Rete Telematica Regione Toscana logo Regione Toscana Corso AQUARIUS sulle Tecnologie Web

Firenze 19 Ottobre 2010 - Pisa, 26 Ottobre 2010

CSS

Cascading Style Sheets
Fogli di Stile in Cascata

Contenuto e stile

Versioni di CSS

Le regole

 elemento1, elemento2 { proprietà:valore; proprietà:valore; }

Le regole: alcuni esempi

Esempio 1
  • p {color: red;}
  • il selettore p indica che la regola va applicata a tutti gli elementi p del documento
  • la proprietà modificata è color
  • il valore che assume la proprietà è red
Esempio 2
  • h1, h2 {color: #00ff00; font-size: 24px; }
  • tutti gli elementi h1 e h2 saranno in verde
  • tutti gli elementi h1 e h2 saranno con caratteri di dimensione 24px
  • esempio di pagina con stile CSS embedded

Dove definire gli stili

inline
All'interno del tag di riferimento
embedded
All'interno del tag style
external
Importandolo con il tag style o indicandolo nel tag link

stile inline

stile embedded

stile external

Tipi di Selettori

Semplici
I selettori possono specificare un elemento
Raggruppamenti
più elementi
Classi
elementi con uno specifico attributo class o id
Pseudo classi
elementi in uno specifico stato o posizione
Pseudo elementi
parte del contenuto di un elemento
Contestuali
elementi che appaiono in contesto relativo ad altri elementi

Selettore Semplice

Raggruppamento di Selettori

Classi

Pseudo Classi

Pseudo Elementi

Selettori Contestuali

Altri selettori

Modello di formattazione

Box

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.

Box

Tipi di elementi

Posizionamento

Come si inseriscono le scatole nello spazio di visualizzazione:

Modello visuale di CSS

proprietà che controllano il tipo di posizionamento e quello di scatola:

Un esempio di posizionamento

un blocco
allineato
a destra
un blocco
allineato a sinistra

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

div in posizione assoluta

Un esempio di posizionamento

<div>
  <div style="display:block; float:right;background:#ffeeee;border-style: solid; border-width: 1px;">un blocco <br/> allineato<br/> a destra</div>
  <div style="display:block; float:left;background:#ffeeee;border-style: solid; border-width: 1px;">un blocco <br/> allineato a sinistra </div>
  <p style="display:block; border-style: solid; border-width: 1px;">un paragrafo che si estende su alcune <span style="display:inline; border-style: solid; border-width: 1px; font-size: 200%;">righe</span>per mostrare come sono posizionati vari elementi all'interno della pagina XHTML</p>
  <p style="display:block; border-style: solid; border-width: 1px;">ancora un paragrafo con elementi inline <span style="display:inline; font-weight:bold; border-style: solid; border-width: 1px;">grassetto</span> e <span style="display:inline; font-style:italic; border-style: solid; border-width: 1px;">italic</span>
  <div style="display:block; position:absolute; top:180px; left: 280px; width: 150px; background:#eeeeff;border-style: solid; border-width: 1px;">div in posizione assoluta</div>
  </p>
</div>

<div> e <span>

<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

elementi strutturali in html5

Il testo

Del testo è possibile controllare sia gli aspetti relativi al font che quelli relativi all'organizzazione del testo nella scatola di riferimento:

Valori di proprietà in CSS

Le proprietà CSS possono essere nomi o valori - I nomi sono tutte parole chiave CSS

Esempi: nomi di proprietà e valori

NomeValore
displaynone
font-styleitalic
margin-top0.5in
font-size12pt
border-stylesolid
color#CC0033
background-colorwhite
background-imageurl(http://www.isti.cnr.it/immagini/sfondoblu.gif)
list-style-imageurl(/immagini/pallinorosso.png)
line-height120%

Unità di misura

Unità di misura relative

Unità di misura in percentuale

Esercizio

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

3 blocchi di testo senza tabelle

Una soluzione

Ereditarietà

Valori ereditati

La dichiarazione !important

Ordine della cascata

Liste e sottoliste numerate (CSS2)

   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
...

Esercizio

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

Esercizio

Realizzare una pagina XHTML 1.1 con un form impaginato senza tabelle

Una soluzione utilizzate con varie tecniche WCAG 2.0

Alcune buone prassi

(rif. cap. 3 Wium Lee & Boss)

I selettori (quadro sinottico)

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
p
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
p#special52
pseudo-element selector (CSS2) le istanze dello pseudo-element p:first-letter
p:first-line
h1:first-child
pseudo-class selector (CSS2) istanze della pseudo-classs, la cui presentazione può variare a seguito dell' interazione dell' utente con la pagina a:hover
a:active
a:focus
a:link
a:visited
body:lang(d)
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
p.wide 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
p+h3
attribute selectors (CSS2) attributi che corrispondono al profilo specificato nelle parentesi quadre p[align]
input[type="text"]
img[alt~="none"]
body[lang|="en"]

Cambio dinamico dello stile CSS

Tecniche di accessibilità WCAG 2.0

Esempio modifica dinamica di parti del documento

Esempio cambio del file CSS

Gli standard non limitano la creatività

Inoltre: alcuni cenni di CSS3

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):

logo ufficio italiano w3c

 

 

Strumenti e stato implementazione

Esercizio

Rivediamo l'esempio iniziale

Esercizio per "casa" (mandatemelo via email)

Preparare un mini sito Web costituito da tre documenti XHTML1.1 collegati tra loro:

Grazie per l' attenzione

Domande?


Se non è sul Web non esiste ...

... troverete le slide all'indirizzo (http://www1.isti.cnr.it/~Martinelli/XML/doc/Corsi_Regione2010/)

 

XML