Div e Span - Filibusta

Transcript

Div e Span - Filibusta
TABLE o TABLELESS?
Fino a pochi anni fa la strutturazione degli elementi all'interno di una pagina
avveniva attraverso le tabelle.
Ad esempio questo è il vecchio sito del polo universitario (www.crema.unimi.it)
Se attiviamo da firefox l'evidenziazione delle tabelle, scopriamo che è
strutturato con una serie di tabelle annidiate.
( per scaricare la tool bar di firefox:
● aprire firefox
● andare all'indirizzo:
● https://addons.mozilla.org/extensions/moreinfo.php?id=60
● cliccare su “install now”
● cliccare su “installa ora” )
Per quanto possa sembrare poco logica, era (ed in alcuni casi è ancora) una
procedura diffusa, anche perché comoda se sviluppata con editor visuali.
La comodità veniva “pagata” con una notevole complessità di codice e poca
chiarezza dei contenuti.
Per diversi motivi, quali l'accessibilità e l'indicizzazione dei motori di ricerca,
molti sviluppatori stanno abbandonando la strutturazione a tabelle. La
tendenza oggi è quella di scrivere un codice HTML rigoroso e racchiudere in
contenuti in elementi denominati DIV e SPAN.
Il W3C definisce i div e gli span in maniera generica, come “raccoglitori di
elementi”:
“ Gli elementi DIV e SPAN, insieme con gli attributi id e class, offrono un
meccanismo generico per aggiungere struttura ai documenti. Questi elementi
definiscono il contenuto o come in riga (SPAN) o come a livello di blocco (DIV),
ma non impongono alcun altro idioma presentazionale sul contenuto. Pertanto,
gli autori possono usare questi elementi in congiunzione con i fogli di stile,
ecc., per adattare l'HTML ai propri bisogni ed ai propri gusti.”
I div sono elementi di blocco. Necessitano del tag di chiusura e hanno come
attributo fondamentale
id = “nome”
L'id identifica il nome, scelto dallo sviluppatore web, per identificare il div, e ad
esempio, attribuirgli determinate proprietà.
ESEMPIO:
Facciamo un esempio, riportando la struttura HTML dell'esercizio della lezione
scorsa (enciclopedia), che era stato strutturato con tre DIV:
uno con <div id=”sommario”> ... </div> che raccoglieva tutta la lista dei link
agli alla spiegazione degli altri tag.
Uno con <div id=”contenuto”>...</div> che raccoglie il contenuti relativi alla
spiegazione del tag a cui la pagina si riferisce
uno con <div id=”footer”></div> che raccoglie le informazioni del piè di
pagina.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css" media="all">
@import "fogliostile.css";
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Enciclopedia del tag</title>
</head>
<body>
<div id="sommario">
<p>TAG:</p>
<ul>
<li><a href="title.htm">title</a></li>
<li><a href="p.htm">p</a></li>
<li><a href="br.htm">br</a></li>
<li><a href="em.htm">em</a></li>
<li><a href="strong.htm">strong</a></li>
<li><a href="acronym.htm">acronym</a></li>
<li><a href="img.htm">img</a></li>
<li><a href="ul.htm">ul - li</a></li>
<li><a href="ol.htm">ol - li</a></li>
<li><a href="table.htm">tabelle - elementi</a></li>
<li><a href="table_2.htm">tabelle - colspan e rowsapan</a></li>
<li><a href="form.htm">form </a></li>
<li><a href="table_3.htm">altri attributi per table</a></li>
<li><a href="fielset.htm">filedset e legend</a></li>
<li><a href="caratteri.htm">tabella dei caratteri</a></li>
</ul>
</div>
<div id="contenuto">
<h1>Nome del tag</h1>
<p>spiegazione</p>
</div>
<div id="footer">
<p>pagina realizzata nel corso IFTS - HTML</p>
</div>
</body>
</html>
Per chiarire la funzionalità del dei div, riportiamo una parte del foglio di stile
collegato alla pagina.
#sommario{
margin-top:0px;
float:left;
width:200px;
text-align:left;
}
#contenuto{ margin-top:5px;
margin-left:205px;
border:1px solid #C6C6FF;
text-align:left;
padding-left:5px;
padding-right:5px;}
#footer{
font-size:8px;
color:#999;}
Il nome che segue il cancelletto corrisponde a quello definito dell'attributo id
del div. Tra le graffe andranno elencate le proprietà specifiche di quel div.
I div possono essere annidati tra loro.
Il Tag span esegue la medesima funzione di div, con la differenza che
“raccoglie” elementi di linea.
Ad esempio possiamo avere all'interno di un paragrafo, del testo che vogliamo
abbia particolari caratteristiche:
<div id="contenuto">
<!-- fare attenzione a < e > -->
<h1> GIACOMO LEOPARDI</h1>
<p>Giacomo Leopardi nacque a Recanati il 29 giugno 1798, primogenito della
più illustre casata del piccolo centro marchigiano. Il padre,
austero e politicamente reazionario, fu, insieme con i precettori
ecclesiastici, il suo primo insegnante.<br />
Ma l'ingegno precocissimo del giovane Giacomo e la sua estrema
sensibilità, frustrati dalla freddezza parentale, lo indussero ben
presto a <span id="colore">riversare tutta la sua passione sui libri
della biblioteca paterna</span> (sette anni di studio "matto e
disperatissimo") e ne fecero un fenomenale autodidatta, esperto in
lingue classiche, ebraico, lingue moderne, storia, filosofia e
filologia (nonché scienze naturali e astronomia).</p>
</div>
parte del foglio di stile sarà:
#colore{
font-size:14px;
color:#FF0000;
}
E il risultato sarà il seguente: