it
Home Italiano -
Originale Inglese;
Traduzione di Ratoize: il mio blog;
Consulenza lingua Inglese: English Conversation;
Ultimo aggiornamento traduzione: 30 Mag 2008;
(This page uses CSS style sheets)
Il menu colorato che si vede qui sotto è semplicemente un elemento DIV con pochi elementi P all'interno. L'effetto grafico è dovuto al fatto che ogni elemento P è posizionato singolarmente ed ha il proprio font e colore. Funziona meglio con testi brevi, perchè l'effetto grafico si basa sulla sovrapposizione e se il testo è troppo lungo, allora si sovrappone tanto da diventare difficile da leggere.
Il foglio di stile prevede un menu fino a 10 elementi, l'esempio sopra ne usa 8. Ecco qui il sorgente HTML dell'esempio sopra:
<div class="map">
<p id="p1"><a href="http://www.w3.org/Style/CSS/#news">What's new?</a>
<p id="p2"><a href="http://www.w3.org/Style/CSS/#learn">Learning CSS</a>
<p id="p3"><a href="http://www.w3.org/Style/CSS/#browsers">CSS Browsers</a>
<p id="p4"><a href="http://www.w3.org/Style/CSS/#editors">Authoring Tools</a>
<p id="p10"><a href="http://www.w3.org/Style/CSS/#specs">Specs</a>
<p id="p6"><a href="http://www.w3.org/Style/CSS/Test">CSS1 Test Suite</a>
<p id="p9"><a href="/StyleSheets/Core">W3C Core Styles</a>
<p id="p8"><a href="http://jigsaw.w3.org/css-validator/">CSS Validator</a>
</div>
Notare la classe "map" sull'elemento DIV, la quale lo rende un contenitore per il menu, e gli attributi ID sulle P. Gli elementi P devono tutti avere un (diverso) ID, chiamato p1, p2, ... o p10. Non è necessario usare gli ID in ordime (come mostrato nell'esempio). Si può usare il foglio di stile copiandolo sul proprio foglio di stile, oppure usando @import o un elemento LINK per importare map.css direttamente dal sito della W3C: così
@import "http://www.w3.org/Style/map.css";
o così
<link rel="stylesheet" href="http://www.w3.org/Style/map.css">
Ecco qui come funziona il foglio di stile. Il foglio di stile comincia con la definizione dell'elemento DIVdi classe "map". Crea uno spazio alto 190px nel quale i contenuti degli elementi P saranno piazzati. Ad ognuno degli elementi con ID da p1 a p10 è dato un colore ed un font, e ogni elemento è posizionato dentro lo spazio creato dal DIV per mezzo della proprietà 'margin': un margine superiore negativo sposta l'elemento su nel DIV e un margine inferiore positivo assicura che il seguente elemento riparte dal fondo del DIV.
(Il punto debole del foglio di stile è che fa tutto in px. Si può voler cambiare i px in percentuali, se si ha un browser che implementa molto bene i CSS.)
DIV.map { /* Reserve some room for the links */
padding-top: 190px;
margin-left: -2em; /* Adapt this to your own page... */
margin-right: -2em; /* Adapt this to your own page... */
margin-bottom: 4em;
margin-top: 5em;
clear: both;
text-shadow: 0.2em 0.2em /* 0.2em */ silver }
#p1, #p2, #p3, #p4, #p5, #p6, #p7, #p8, #p9, #p10 {
white-space: nowrap }
#p1, #p2, #p3, #p4, #p5, #p6, #p7, #p8, #p9, #p10 {
text-indent: 0 }
#p1 A, #p2 A, #p3 A, #p4 A, #p5 A, #p6 A, #p7 A, #p8 A, #p9 A, #p10 A {
text-decoration: none }
#p1, #p1 A {color: #DDD; font: 100px/1 Impact, Helvetica Narrow, sans-serif}
#p2, #p2 A {color: #000; font: italic 40px/1 "Georgia", serif}
#p3, #p3 A {color: #080; font: 40px/1 "Verdana", sans-serif}
#p4, #p4 A {color: #37F; font: bold 40px/1 Courier New, Courier, monospace}
#p5, #p5 A {color: #F73; font: bold 100px/1 "Verdana", sans-serif}
#p6, #p6 A {color: #22A; font: bold 25px/1 "Verdana", sans-serif}
#p7, #p7 A {color: #088; font: italic 80px/1 "Verdana", sans-serif}
#p8, #p8 A {color: #088; font: italic 20px/1 "Verdana", sans-serif}
#p9, #p9 A {color: #088; font: italic 20px/1 "Verdana", sans-serif}
#p10, #p10 A {color: #F73; font: bold 60px/1 "Verdana", sans-serif}
#p1 {text-align: right; margin: -185px 0 85px 0} /* top right */
#p2 {text-align: left; margin: -190px 0 150px 5%} /* top left */
#p3 {text-align: right; margin: -90px 35% 50px 0} /* center */
#p4 {text-align: right; margin: -95px 0 55px 0} /* center right */
#p5 {text-align: left; margin: -130px 0 30px 0} /* center left */
#p6 {text-align: left; margin: -40px 0 15px 35%} /* bottom center */
#p7 {text-align: right; margin: -80px 0 0px 0} /* bottom right */
#p8 {text-align: left; margin: -40px 0 20px 3%} /* bottom left */
#p9 {text-align: right; margin: -25px 0 5px 0} /* bottom right */
#p10 {text-align: left; margin: -130px 0 70px 0} /* center left */
Naturalmente si è liberi di cambiare il foglio di stile per provare diversi font, colori e posizioni, o per creare regole di stile extra per più di 10 elementi. Dare un occhiata anche ai margini destro e sinistro del DIV: essi sono negativi, cosicchè il menu è più largo del testo circostante, ma in certe pagine il margine potrebbe non essere largo abbastanza per questo, e quindi si dovrebbero rimuovere queste regole.
Se si prova lo stile, si può notare che non funziona tanto bene in Netscape 4. Questo per colpa di Netscape 4, naturalmente. Comunque, map-ns.css è un foglio di stile che è simile e che sembra funzionare bene con questo browser. Il seguente trucco nello head del documento HTML permetterà alla versione per Netscape 4 e alla versione sopra per implementazioni migliori del CSS di coesistere:
<link href="map-ns.css" rel="stylesheet" type="text/css">
<link href="map.css" rel="stylesheet" type="text/css" media="all">
Una implementazione corretta del CSS leggerà entrambi i fogli di stile, ma le regole nel secondo foglio avranno la precedenza sul primo, quindi a parte un po' di lavoro in piu, non ci sono cambiamenti. Netscape 4, comunque, non caricherà il secondo foglio di stile, a causa dell'attributo "media", che non riconosce.
Inoltre ci si potrebbe chiedere perchè gli elementi sono posizionati tramite margini (negativi), mentre questo sembra essere un ottimo candidato per le proprietà di posizionamento assoluto. Effettivamente si può fare lo stesso con 'position' e 'left' & 'right'. La ragione per cui questo foglio di stile usa invece i margini, è che in questo modo funziona in quei browser che implementano solo il CSS1.