Manie Grafiche fa ora parte di Ueppy S.r.l. - Per preventivi ed informazioni: 800 97 44 69

 

Archivi di novembre, 2006

Inclusione di css e javascript

giovedì, 30 novembre, 2006

I fogli di stile (css) ed i documenti javascript possono essere inseriti in diversi modi nelle vostre pagine Web.

Per i css vi rimando a questo articolo che vi spiegherà 4 metodi diversi per la loro inclusione.

Gli script javascript possono essere inseriti a runtine nelle pagine:

<html>
 <head><title>prova</title></head>
 <body>
   <a href="void(0)" onclick="var a=3; a=a*6; alert (a);">cliccami</a>
 </body>
</html>

possono essere inseriti in forma estesa nell’head:

<html>
 <head>
   <title>prova</title>
   <script type="text/javascript">
     function prova() {
      var a=3;
      a=a*6;
      alert (a);
     }

   </script>

 </head>
 <body>
……

oppure possono esser richiamati da un file esterno utilizzando una sintassi abbastanza simile alla precedente:

<html>
 <head>
   <title>prova</title>
   <script type="text/javascript" src="/indirizzo_del_file.js"></script>
 </head>
 <body>
……

Indicando in src il percorso (relativo oppure assoluto) del file contenente tutte le istruzioni javascript richieste. Evidentemente è possibile inserire anche più file javascript esterni contemporaneamente indicandoli uno per volta:

<script type="text/javascript" src="/indirizzo_file_1.js"></script>
<script type="text/javascript" src="/indirizzo_file_2.js"></script>

e così via di seguito.

Titolo

giovedì, 30 novembre, 2006

Il titolo delle pagine web è un elemento indispensabile, richiesto dalle norme del W3c. Si definisce nelle pagine web, con la seguente sintassi:

<title>Titolo della pagina</title>

immessa tra i tag <head>.

La sua importanza è duplice: per gli utenti del vostro sito in quanto è ciò che apparirà nella barra azzurra in alto nel browser e per i motori di ricerca i quali utilizzeranno anche tale dato per mostrare i risultati e molto spesso per indicare proprio, anche se non sempre, il titolo della vostra pagina. Ovviamente non basta assegnare un titolo per guadagnare posizioni: i motori controlleranno innanzitutto che il titolo indicato sia compatibile con i contenuti mostrati: è inutile mettere <title>pere e mele</title> se la pagina parlerà di computer, tanto per dirne una. Attenzione anche a non indicare titoli chilometrici: in generale un buon titolo è lungo da 20 a 80-100 caratteri ed indicherà in modo chiaro e conciso ciò che l’utente potrà approfondire nel resto del testo.

Come creare un sito a 3 colonne con i css

lunedì, 13 novembre, 2006

Con questo tutorial vedremo come costruire un layout a 3 colonne più header e footer completo.

Vedremo successivamente come utilizzare questo template in un sistema di blogging molto diffuso quale WordPress.

Diamo per scontato che abbiate già letto il tutorial su come costruire un semplice layout a due colonne e quindi che abbiate compreso cos’è il box model, come aggirare le limitazioni di IE, cosa significhi elemento inline e blocco e come utilizzare le proprietà float e clear.

 Supponiamo che il nostro grafico ci abbia inviato questo layout (spero per voi che abbia fatto anche di meglio 🙂 )

Clicca per ingrandire
[clicca sulle immagini per ingrandirle]

Per prima cosa dovremmo decidere come dividere gli spazi *tipografici*: nell’immagine successiva noterete una mia personalissima suddivisione. Ovviamente voi potrete sceglierne un’altra se vi fosse più comoda o se non vi trovaste a vostro agio con quella da me scelta.

Clicca per ingrandire

Iniziamo dunque a dividere la pagina con lo stesso metodo già utilizzato in questo tutorial:

Avremo a questo punto tale codice html:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
 <head>
  <title>Prova layout 3 colonne</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link type="text/css" rel="stylesheet" href="style.css" title="Style" media="all" />
 </head>
 <body>
  <div id="contenitore">
   <div id="header">&nbsp;</div>
   <div id="colsx">&nbsp;</div>
   <div id="coldx">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</div>
   <div id="footer">&nbsp;</div>
  </div>
 </body>
</html>

Ed il css sarà invece:

body {background:#333; text-align:center; font-family:Helvetica, arial, sans-serif;  font-size:12px;}
 div#contenitore {background:#180000; width:915px; margin:0 auto; text-align:left; }
  div#header {background:#F30; height:170px;}
  div#colsx {background:#FFF; width:766px; \width:767px; w\idth:766px; float:left; border-right:1px solid #CCC;}
  div#coldx {background:#180000; color:#FFF; width:127px; \width: 148px; w\idth:127px; float:left; padding:10px; border-top:1px solid #333;}
  div#footer {background:#333; clear:left; border-top:6px solid #CCC; text-align:center; }

Noterete come assomigli terribilmente al codice del tutorial a 2 colonne già linkato sopra. Le uniche differenze pratiche sono l’aggiunta di un paio di bordi, in particolare il bordo di 6 pixel del footer.

Siamo arrivati a questo punto: (non preoccupatevi dello sfondo completamente marrone; quella parte sarà occupata dalla colonna sinistra. L’ho messo poiché suppongo che la parte sinistra sarà più alta della colonna destra e per tal motivo lo sfondo marrone servirà a compensare la mancanza di altezza di quest’ultima, come noterete tra poco).

Clicca per ingrandire

Ci occuperemo ora della colonna sinistra. Dall’immagine noterete sicuramente che la parte in verde potrebbe esser divisa in 3 blocchi principali:

  • il menu in alto alla stregua di un header classico;
  • una colonna sinistra;
  • ed una destra.

Clicca per ingrandire  

Seguendo la solita procedura aggiungeremo:

xhtml (solo body):
<body>
  <div id="contenitore">
    <div id="header">&nbsp;</div>
    <div id="colsx">
        <div id="menu">Qui verr&agrave; inserito il menu</div>
        <div id="subcolsx">&nbsp;</div>
        <div id="subcoldx">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</div>
      </div>
      <div id="coldx">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</div>
    <div class="clearlft"></div>
    <div id="footer" class="clearlft">&nbsp;</div>
  </div>
</body>

css:
body {background:#333; text-align:center; font-family:Helvetica, arial, sans-serif;  font-size:12px;}
  div#contenitore {background:#180000; width:915px; margin:0 auto; text-align:left; }
    div#header {background:#F30; height:170px;}
    div#colsx {background:#FFF; width:766px; \width:767px; w\idth:766px; float:left; border-right:1px solid #CCC;}
        div#menu {background:#999;}
        div#subcolsx { background:#FFF; float:left; width:598px; \width: 619px; w\idth:598px; padding:10px; border-right:1px solid #000;}
        div#subcoldx {background:#F60; color:#FFF; width:127px; \width: 147px; w\idth:127px; float:left; padding:10px;}
    div#coldx {background:#180000; color:#FFF; width:127px; \width: 148px; w\idth:127px; float:left; padding:10px; border-top:1px solid #333;}
    div#footer {background:#333; border-top:6px solid #CCC; text-align:center; }
  .clearlft {clear:left; }

Le parti in rosso son quelle appena aggiunte; ciò è quello che abbiamo ottenuto finora:

Clicca per ingrandire

Iniziamo a "riempire" i blocchi dal menu. In giro son presenti moltissimi menu già pronti; in questo tutorial proveremo a farli da soli.

Sostituiamo il div del menu con una lista non ordinata, che riempiremo di elementi ai quali daremo la proprietà di essere elementi inline i quali conterranno i veri collegamenti.

Il css che scriveremo sarà:

ul#menu {background:#999; padding:0; margin:0; list-style:none; height:2.75em; border-width:0.1em 0; border-color:#333; border-style:solid;}
 ul#menu li {float:left;}
  ul#menu li a {display:block; color:#FFF; background:#999; font-size:1.1em; line-height:2.5em; padding:0 1.5em; text-decoration:none; border-right:0.08em solid #333; font-family:Verdana, sans-serif; font-weight:bold;}
  ul#menu li a.current {background:#300000;}
  ul#menu li a:hover {background:#F60;}

a cui corrisponderà questo codice xhtml:

<ul id="menu">
  <li><a href="#">Home</a></li>
  <li><a href="#" class="current">Item 2</a></li>
  <li><a href="#">Item 3</a></li>
  <li><a href="#">Item 4</a></li>
  <li><a href="#">Item 5</a></li>
  <li><a href="#">Contatti</a></li>
</ul>

Provo a spiegare cosa abbiamo fatto; abbiamo:

  • indicato i vari elementi della lista (li) come inline, per affiancarli uno all’altro;
  • indicato gli elementi a come blocchi per poter sfruttare la possibilità di cliccare su tutto il blocco e non solo sulla scritta;
  • assegnato un colore alla barra del menu (#999) ed allo sfondo dei vari collegamenti;
  • dato ai blocchi a un’altezza di 1.1 em cioè il 110% della grandezza standard dei caratteri e un’altezza delle linee di 2.5em (250%) del testo;
  • assegnato al blocco menu un’altezza di 2.75em (cioè 2.5 di line-height*1.1); Approfondiremo questo aspetto in un’altra sezione appena possibile.
  • messo il bordino a tutto il blocco menu in alto ed in basso, di dimensioni 0.1em, colore #333, solido;
  • dato il bordo ai blocchi a solo a destra per evitare sovrapposizioni. (0.08, cioè 0.1/1.2); come sopra
  • tolto il padding ed il margine al menu per evitare spazi bianchi e tolto lo stile delle liste (il classico puntino tipo quello di questa lista);
  • tolto la sottolineatura ai link ed assegnato il colore bianco;
  • assegnato il colore per l’effetto hover e per la pagina corrente a cui abbiamo dato una classe apposita

Questo è il risultato:

Clicca per ingrandire

Prossimo step è quello di lavorare sull’header. Ciò che ci serve è assegnare l’immagine di sfondo e posizionare il titolo con h1 ed il sottotitolo con h2. Vista la dimensione fissa della testata potremmo semplicemente ritagliare l’immagine ed assegnarla come sfondo. Se fosse stato un layout liquido avremmo dovuto preoccuparci di creare un’immagine di sfondo di una larghezza molto ampia per coprire tutte le possibili risoluzioni; avremmo dovuto creare due immagini: una del fiore che avremo posizionato come immagine fissa a sinistra ed un pattern dello sfondo da ripetere lungo l’asse X. Assegnamo poi le proprietà ai blocchi h1 ed h2, assegnando ad entrambi le stesse proprietà: famiglia di caratteri Georgia, margine sinistro di 510 px, dato che vogliamo centrare gli stessi rispetto al fiore, largo appunto 510 pixels. Non ci resta che definire i colori ed il gioco è quasi fatto. Attenzione: dato che in h1 inseriremo un collegamento, dobbiamo dare il colore all’elemento a e non solo ad h1.
Le modifiche fatte per questo step saranno evidenziate nel codice con il colore azzurro.

Screenshot a questo punto:

Clicca per ingrandire

Ci restano le ultime modifiche da fare:

  • assegnare la grandezza e lo stile ai vari elementi h1, h2, h3… hx;
  • cambiare il colore del testo al box arancio;
  • dare l’effetto con le linee dello sfondo (prendendo un’immagine 4×4 e ripetendola);
  • dare il colore al testo del footer ;
  • togliere il padding al body;
  • impostare la grandezza iniziale ai caratteri;

ed abbiamo finito. Le modifiche fatte per questo step saranno evidenziate nel codice con il colore verde.

xhtml finale:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
 <head>
  <title>Prova layout 3 colonne</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link type="text/css" rel="stylesheet" href="style.css" title="Style" media="all" />
 </head>
 <body>
  <div id="contenitore">
    <div id="header">
      <h1><a href="./index.html">Titolo del sito</a></h1>
      <h2>Sottotitolo</h2>
    </div>
    <div id="colsx">
      <ul id="menu">
        <li><a href="#">Home</a></li>
        <li><a href="#" class="current">Item 2</a></li>
        <li><a href="#">Item 3</a></li>
        <li><a href="#">Item 4</a></li>
        <li><a href="#">Item 5</a></li>
        <li><a href="#">Contatti</a></li>
      </ul>
    <div id="subcolsx">
      <h3>Titolo articolo</h3>
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
      <h3>Altro titolo</h3>
      <h4>Titolo sezione a</h4>
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
      <h4>Titolo sezione b</h4>
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
      <h4>Titolo sezione c</h4>
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</p>
    </div>
    <div id="subcoldx">
      <h5>Titolo sezione</h5>
      <img src="./img1.gif" alt="immagine 1" />
      <p>Descrizione dell’immagine 1</p>
      <img src="./img2.gif" alt="immagine 2" />
      <p>Descrizione dell’immagine 2</p>
      <div>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet</div>
    </div>
  </div>
  <div id="coldx">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.</div>
    <div class="clearlft"></div>
    <div id="footer" class="clearlft">Lorut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation</div>
  </div>
 </body>
</html>

css finale:

body {background:#333 url("./linee.gif"); text-align:center; font-family:Helvetica, arial, sans-serif; font-size:12px; margin:0;}
 a img {border:0;}
 div#contenitore {background:#180000; width:915px; margin:0 auto; text-align:justify;}
  div#header {background:#F30 url("./header.jpg") no-repeat; height:170px;}
   div#header h1, div#header h2 {text-align:center; margin-left:510px;}
   div#header h1 { margin-top:0; padding-top:1em; color:#FFF;}
    div#header h1 a {color:#FFF;}
   div#header h2 {color:#F60;}
  div#colsx {background:#F60; width:766px; \width:767px; w\idth:766px; float:left; border-right:1px solid #CCC; }
   ul#menu {background:#999; padding:0; margin:0; list-style:none; height:2.75em; border-width:0.1em 0; border-color:#333; border-style:solid;}
    ul#menu li {float:left;}
     ul#menu li a {display:block; color:#FFF; background:#999; font-size:1.1em; line-height:2.5em; padding:0 1.5em; text-decoration:none; border-right:0.08em solid #333; font-family:Verdana, sans-serif; font-weight:bold;}
    ul#menu li a.current {background:#300000;}
    ul#menu li a:hover {background:#F60;}
  div#subcolsx { background:#FFF; float:left; width:598px; \width: 619px; w\idth:598px; padding:10px; border-right:1px solid #000;}
  div#subcoldx {background:#F60; color:#180000; width:127px; \width: 147px; w\idth:127px; float:left; padding:10px; text-align:center; margin-top:1em;}
  div#subcoldx {margin-top:0;}
   div#subcoldx img {border:2px outset #180000;}
 div#coldx {background:#180000; color:#FFF; width:127px; \width: 148px; w\idth:127px; float:left; padding:10px; border-top:1px solid #333; }
 div#footer {background:#333; text-align:center; border-top:6px solid #CCC; color:#F60; font-style:italic;}

 h1, h2, h3, h4, h5, h6 {font-family:Georgia, serif; }
 h1 {font-size:2.5em;}
 h2 {font-size:1.8em;}
 h3 {font-size:1.6em;}
 h4 {font-size:1.4em; font-style:italic;}
 h5 {font-size:1.2em; font-style:italic;}
 h6 {font-size:1.1em; font-style:italic;}
 .clearlft {clear:left; }

Ed ecco il risultato finale:

Clicca per ingrandire

Esempio e codici.

Come Creare un sito a 2 colonne tableless

domenica, 5 novembre, 2006

In questo articolo vedremo un esempio pratico e di difficoltà medio bassa di creazione di un layout tableless a due colonne, con header in alto e footer in basso. Chiaramente potrete riutilizzare il codice mostrato per qualsiasi vostro progetto.

Iniziamo a definire la struttura della pagina xhtml, inserendo il giusto doctype per xhtml 1.1, definendo la lingua italiana ed il charset come UTF-8 ed aggiungendo il link al css, inserito nella stessa directory del file e 4 blocchi per header, footer e le due colonne, messi in un blocco contenitore:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
   <head>
    <title>Prova layout 2 colonne</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link type="text/css" rel="stylesheet" href="style.css" title="Style" media="all" />
  </head>
  <body>
    <div id="contenitore">
      <div id="header">&nbsp;</div>
      <div id="colsx">&nbsp;</div>
      <div id="coldx">&nbsp;</div>
      <div id="footer">&nbsp;</div>
    </div>
  </body>
</html>

Modifichiamo il css dando i colori di sfondo ai vari blocchi:

  • bianco al body (non è ridondante, visto che molti, me compreso non assegnano colori al css predefinito dal browser)
  • #4A2C3E all’header
  • #F90 alla colonna sinistra
  • #060 a quella di destra
  • #999 al footer
  • al contenitore non diamo alcun valore lasciando quindi visibile il colore dello sfondo del body.

Il css a questo punto sarà questo:

body {background:white;}
 div#contenitore {}
  div#header {background:#4A2C3E;}
  div#colsx {background:#F90;}
  div#coldx {background:#060;}
  div#footer {background:#999;}

Ed il risultato sarà questo (clicca sulle immagini per vederle a grandezza maggiore):

Screenshot n.1

Definiamo ora le larghezze dei vari blocchi. Ipotizzo che tutto il sito avrà larghezza totale di 900px (ovviamente potremmo anche definire la dimensione in percentuale o valori diversi):

Il css sarà:

body {background:white;}
 div#contenitore {width:900px;}
  div#header {background:#4A2C3E;}
  div#colsx {background:#F90; width:650px; float:left;}
  div#coldx {background:#060; width:250px; float:left;}
  div#footer {background:#999; clear:left;}

In rosso le parti aggiunte. Noterete che utilizziamo le proprietà float e clear per far sì che le colonne si affianchino una all’altra ed il footer si riposizioni correttamente al di sotto di entrambe.

Il risultato finora:

Screenshot n.2

Salta subito all’occhio che sotto la colonna sinistra abbiamo dello spazio bianco: ciò è dovuto al fatto che non abbiamo definito un’altezza e quindi il blocco, una volta riempito dal testo fittizio, finirà lasciando intravedere ciò che vi è sotto. Lo stesso problema, inverso avremo nel caso in cui l’altezza della colonna destra sia minore dell’altra.

Soluzioni possibili possono essere:

  1. definire un’altezza comune ed aggiungere le scrollbar simulando i frame
  2. definire un’altezza minima ai blocchi con min-height, utilizzando l’hack per i browser di casa Microsoft, tenendo in mente che comunque avremmo problemi con altri browser come safari
  3. dare un colore di sfondo al contenitore uguale al blocco di minore altezza, avendo ben presente che se l’altro ha altezza maggiore avremo dei problemi.

Screenshot n.3

Seguiremo la strada numero 3 ipotizzando che il blocco di destra abbia altezza maggiore e comunque non preoccupandoci troppo del caso opposto.

Altra cosa che notiamo è che il tutto è allineato a sinistra. Volendo allinearlo al centro dovremmo usare la proprietà margin: 0 auto; al blocco contenitore, proprietà che dice allo stesso di posizionarsi a distanza 0 da sopra e sotto ed automaticamente da destra e sinistra dal contenitore in modo centrato. IE non segue questa proprietà correttamente e per supplire al problema inseriamo nel body: text-align:center, che posiziona tutto ciò che c’è nel body al centro. Successivamente reimpostiamo text-align:left; in contenitore per dare allineamento a sinistra agli oggetti presenti.

Css con le modifiche al momento:

body {background:white; text-align:center;}
 div#contenitore {background:#F90; width:900px; margin:0 auto; text-align:left; }
  div#header {background:#4A2C3E;}
  div#colsx {background:#F90; width:650px; float:left;}
  div#coldx {background:#060; width:250px; float:left;}
  div#footer {background:#999; clear:left;}

Anteprima:

Screenshot n.4

Ci siamo quasi: impostiamo ora un famiglia ai caratteri, inseriamo il titolo della pagina ed il sottotitolo, il padding ai blocchi e ci fermiamo qui.

body {background:white; text-align:center; font-family:Helvetica, arial, sans-serif;}
 div#contenitore {background:#F90; width:900px; margin:0 auto; text-align:left; }
  div#header {background:#4A2C3E; height:5em;}
   h1 {color:white; text-align:right; padding:1em 1em 0 0; font-family:Georgia, serif;}
  div#colsx {width:630px; \width:650px; w\idth:630px; float:left; padding:10px;}
  div#coldx {background:#060; width:228px; \width: 250px; w\idth:228px; float:left; padding:10px; border-left:2px solid white;}
  div#footer {background:#999; clear:left; border-top:3px solid #4A2C3E; text-align:center; }

In rosso vediamo le ultime modifiche; abbiamo

  • impostato la famiglia di caratteri come helvetica, in mancanza del quale vedremo l’arial o il generico bastoni impostato dal browser;
  • assegnato un’altezza di 5 volte l’altezza media di una riga all’header;
  • creato una regola per l’h1 del titolo del sito: colore bianco, allineato a destra, con padding di 1em da sopra e da destra e con font Georgia o il bastoni di default;
  • dato un padding alle due colonne di 10px per lato ed assegnato un bordo sinistro bianco di due pixel alla colonna destra;
  • assegnato un bordo di 3 px in alto al footer dello stesso colore dell’header ed impostato un’allineamento al centro.

In azzurro sono presenti le modifiche fatte per evitare un errore di enterpretazione del box model di IE 5 ed in modo limitato del 6 (si verifica l’errore se non si è specificato un doctype). Qual è la logica? Il width, da specifiche del W3C, dovrebbe indicare la larghezza del blocco SENZA padding, bordo e margine, come indicato nell’immagine accanto.

Le vecchie versioni di IE recepiscono come width il width effettivo più il bordo ed il padding.

Noi siamo partiti da una larghezza di 650px per la prima colonna: aggiungendo il padding di 10px a destra ed a sinistra abbiamo dato come larghezza 630px (650-10-10); la seconda colonna era inizialmente di 250px; tolti 20px di padding e 2 di bordo resta una larghezza di 228px. Per le vecchie versioni di IE la larghezza dovrebbe esser immutata a 250. Dato che IE5 non riesce a leggere questa istruzione w\idth a differenza di altri browser, possiamo impostare la larghezza prima e ridefinirla successivamente con un’istruzione che non sarà ripresa dal browser Microsoft. (Approfondiremo questa ed altre tecniche in prossimi articoli.)

Questo sarà il risultato definitivo:

Screenshot finale

Esempio e codici.

Manie Grafiche è stata rilevata da Ueppy S.r.l. - via Farnese, 16 - Pico | P.iva: 02682300609