Spesso ci troviamo, creando i nostri siti, con la necessità di avere delle colonne affiancate che abbiano la stessa altezza. Il problema sopraggiunge quando una delle due colonne ha un’altezza maggiore dell’altra. In questo caso, se applichiamo un colore di sfondo per ogni colonna, avremo due colone di altezza diversa, vanificando il nostro intento di avere un template con colonne di pari altezza. Come ovviare a questo? la soluzione è davvero molto semplice. Basta applicare un’immagine di sfondo all’elemento precedente le nostre due colonne, body o un altro div contenitore, che simuli due colonne. Questa tecnica viene indicata col nome di FAUX COLUMNS, false colonne, in quanto le colonne sono appunto falese, simulate. Diamo un’occhiata a questa pagina. Come potete vedere, è perfettamente simulato un template con header, footer e due colonne della medesima altezza. Il codice della pagina è questo:
<div id=”center”>
<div id=”header”>
<h1>TITOLO</h1>
</div>
<div id=”nav”>
[contenuto]
</div>
<div id=”content”>
[contenuto]
</div>
<div id=”footer”>
</div>
</div>
abbiamo i vari div ai quali abbiamo poi associato un foglio stile. Eccolo di seguito:
body {
color: #FFFFFF;
margin: 0;
padding: 0;
text-align: center;
}
#header {
height: 125px;
background: url(’img/bg_01.jpg’);
}
#header h1 {
position: absolute;
left: -2000px;
}
#center {
margin: 0 auto;
width: 600px;
background-image: url(’img/bg_03.jpg’);
background-repeat: repeat-y;
text-align: justify;
}
#nav {
float: left;
width: 170px;
padding: 20px 30px 20px 20px;
}
#content {
width: 320px;
padding: 20px 30px 20px 20px;
margin-left: 220px;
}
#footer {
height: 98px;
background: url(’img/bg_05.jpg’);
}
analizziamolo in dettaglio. Per prima cosa abbiamo centrato il div contenitore dando al tag body la proprietà text-align: center per consentire ad IE di centrare l’elemento e abbiamo dato un margin: auto al div content per centrarlo. Fatto questo abbiamo associato all’header questa immagine e agli abbiamo attribuito un’altezza. Poi ci siamo occupati del div contenitore che è quello alla base del nostro trucchetto per ottenere le false colonne, abbiamo infatti, oltre alle solite cose quali altezza e allineamento del testo (che deve essere ridefinito onde evitare l’ereditarietà della proprietà text-align: center definita nel tag body), definito un’immagine di sfondo, questa, per appunto simulare le colonne. Poi abbiamo posizionato i div interni associando al div NAV un float left e al div CONTENT un margin-left per averle affiancate. Infine abbiamo associato questa immagine al footer ed ecco che il nostro template a due colonne è bello e pronto! Come vedete, niente di trascendentale. La tecnica appena descritta è stata provata da me su i browsers gecko e internet explorer fino alla versione 6. Se volete, potete provare e postare qui i vari problemi che incontrate, se ce ne dovessero essere, con browser più datati. Più in avanti ci occuperemo di altre situazioni, compresi layout liquidi, in cui possiamo utilizzare questa tecnica ed infine anche un’ulteriore tecnica che non prevede, almeno per simulare le due colonne, l’utilizzo di un’immagine di sfondo. Quindi, mi raccomando, non mancate e partecipate attivamente commentando e provando voi stessi le varie tecniche proposte nel sito. Solo così potremo crescere in esperienza e favorire chi non ne ha e vuole imparare. A presto