Introduzione ai CSS - Centrare un box
Tuesday 5 February 2008 Marco Bertoni, ultimo aggiornamento: Tuesday 19 August 2008.
Alcuni modesti suggerimenti, per far la vita meno amara.
Centrare un box con CSS
Un primo metodo per centrare un box all'interno della pagina consiste nell'assegnare ad esso una larghezza esplicita ed il valore auto per le proprietà margin-left e margin-right.
#box {width: 300px;margin-left: auto;margin-right: auto;}
Se siete maniaci della retro-compatibilità, come il sottoscritto, noterete che questo metodo non funziona con le versioni precedenti la 6 di IE, perché queste ultime non applicano il valore auto.
Per ottenere la centratura anche con le vecchie versioni di IE è necessario allineare il testo al centro in body (ricordandosi poi di riportare l'allineamento a sinistra nel box).
body { text-align: center; }#box {margin-left: auto;margin-right: auto;width: 300px;text-align: left;}
Un'altra soluzione è quella di utilizzare una combinazione di posizionamento assoluto e margini negativi.
#box {position: absolute;left: 50%;width: 760px;margin-left: -380px;}
Il posizionamento assoluto rimuove il box dal flusso del documento. Successivamente lo posizioniamo in modo tale che il limite sinistro del box stia precisamente al centro della pagina (left: 50%;). A questo punto dimezziamo la larghezza del box (760/2 = 380), questo valore servirà per "riportare indietro" il box di esattamente la metà della sua lunghezza, costringendolo a stare esattamente centrato nella pagina (margin-left: -380px;).
Infine per centrare un box dimensionato in percentuale è sufficiente posizionarlo, rispetto al confine di uno dei lati, di una misura uguale alla metà della differenza tra la larghezza del box e quella della pagina (la larghezza della pagina è il 100%).
#box {position: absolute;width: 60%;left: 20%;}
Per approfondire fate un giro su Blue Robot.


Tuesday 11 March 2008 13:33
Ciao Marco, complimenti per il “progetto” davvero interessante…
In realtà c’è anche un’altro metodo, si tratta di un posizionamento relative.
ecco il codice:
body { position:absolute; width:100%; }
#box { position:relative;
margin:0px auto;
width:1000px;
height:800px; }
La lunghezza e l’altezza ovviamente sono opzionali, ciao e continua così!
Tuesday 11 March 2008 13:47
Ciao Francesco, grazie a te per il commento ;).