Semplicemente

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.

  1. #box {
  2. width: 300px;
  3. margin-left: auto;
  4. margin-right: auto;
  5. }

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).

  1. body { text-align: center; }
  2. #box {
  3. margin-left: auto;
  4. margin-right: auto;
  5. width: 300px;
  6. text-align: left;
  7. }

Un'altra soluzione è quella di utilizzare una combinazione di posizionamento assoluto e margini negativi.

  1. #box {
  2. position: absolute;
  3. left: 50%;
  4. width: 760px;
  5. margin-left: -380px;
  6. }

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%).

  1. #box {
  2. position: absolute;
  3. width: 60%;
  4. left: 20%;
  5. }

Per approfondire fate un giro su Blue Robot.

Contribuisci alla serie di articoli Introduzione ai CSS

4 Commenti a “Introduzione ai CSS - Centrare un box”

  1. Francesco dice:

    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ì!

  2. Marco Bertoni dice:

    Ciao Francesco, grazie a te per il commento ;).

  3. pokono dice:

    GRAZIE GRAZIE GRAZIE!!!

    E’ 4 mesi che lavoro con i CSS…. mi hai salvato da ore di lavoro e da tante maledizioni a bill!!
    Grazie ancora!

  4. Marco Bertoni dice:

    Belin! per così poco ;). Grazie a te di esser passato da queste parti!

Scrivi un commento

XHTML: Puoi utilizzare questi marcatori: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Non ho commentato ma desidero ugualmente essere avvisato quando è pubbicato un commento: