Notizia del 09/04/2007
Per simulare delle colonne con i div e i css non esiste solo il float visto nel precedente tutorial, ma anche il posizionamento assoluto.
In un certo senso, il posizionamento assoluto consente un layout più stabile rispetto a quello ottenuto con il comando float, perché a differenza di quest'ultimo permette di utilizzare lo spazio a disposizione al pixel senza timore che uno dei div finisca sotto l'altro.
Ha però delle controindicazioni: la parte posizionata in maniera assoluta dev'essere obbligatoriamente sempre più corta dell'altra, perché il posizionamento assoluto rimuove il blocco di codice dal flusso della pagina e il rischio è di ritrovarsi con elementi sovrapposti in maniera errata.
Il tutorial illustra solo la parte di codice interessata al posizionamento assoluto; chi desidera i files completi, li può scaricare dal link in calce.
***
Come in precedenza, il linguaggio di marcatura usato è xhtml Strict e questo è il blocco di codice che ci interessa:
Come si vede, si tratta di un div esterno (id="corpo") e di tre div interni (id="sinistra" - id="centro" - id="destra"), ognuno dei quali contiene un paragrafo con del testo; al solito, ho diviso i tre div con una linea (<hr />) in modo da aiutare la navigazione in caso di visualizzazione senza i CSS.
***
Il foglio di stile usato per posizionare in maniera assoluta i div è il seguente:
Nel dettaglio la spiegazione dei vari comandi:
Al div #corpo imposto i seguenti parametri:
Il posizionamento relativo del div contenitore è essenziale, perché il posizionamento assoluto fa riferimento al primo contenitore con posizionamento relativo che trova; nel caso non ne trovi, fa riferimento alla finestra del browser (chiamata "viewport").
Al div #sinistra imposto i seguenti parametri:
Al div #centro imposto i seguenti parametri:
In questo modo, il div centrale evita di occupare lo spazio dei div laterali che - in quanto inesistenti ai fini del flusso del codice, non riescono a impegnare loro stessi lo spazio necessario.
Al div #destra imposto i seguenti parametri, quasi identici a quelli usati per il div#sinistra:
Naturalmente non è necessario che i due div laterali abbiano le stesse dimensioni; quel che è importante è che la loro larghezza sia uguale o inferiore al relativo margine del div centrale.
Questo il risultato:
***
Il layout con posizionamento assoluto funziona perfettamente finché la colonna centrale è più corposa delle colonne laterali, ma nel caso queste ultime abbiano maggior contenuto, sorgono dei problemi e si evidenzia il punto debole di questo sistema: le colonne laterali infatti rischiano di coprire parte della pagina o di finire fuori dal layout come succede nell'immagine qui sotto:
Per ovviare a tale inconveniente, basta inserire dove necessario una certa quantità di padding alla colonna centrale in modo da allungarla artificiosamente; per farlo, si può per esempio usare una classe.
La stringa di codice:
La relativa classe aggiunta nel CSS:
con questo risultato:
Per tale peculiarità, il layout con posizionamento assoluto crea qualche problema nel caso di siti gestiti dinamicamente con i CMS dove tutto dev'essere standardizzato quanto più possibile ed è più adatto invece a siti gestiti manualmente, magari con layout che abbisognano di effetti particolari.
***
Scarica la pagina xhtml e il file del CSS con il codice completo (zip - 2kb)
Torna a inizio pagina
I campi con * sono obbligatori.
Torna a inizio pagina
Torna a inizio pagina
Commenti
1 - Scritto da Evan75 il 11/04/2007 alle 07:05
reb sei sempre la numero 1! ottimo lavoro. grazie!
Ivan
2 - Scritto da reb il 11/04/2007 alle 09:46
sei gentile, grazie a te :)