Bookmark and Share
 DIV centrato nella pagina

Sviluppo Siti Monday 25 June 2007 alle 11:19

Avevo ancora una scarsa conoscenza di CSS (in tutte le sue versioni) e litigavo continuamente cercando il modo di centrare correttamente un DIV all’interno della pagina. Poteva essere semplicemente un blocco per l’autenticazione o anche per la centratura orizzontale completa del sito in costruzione. Ora ho capito il meccanismo e le regole di CSS e il tutto risulta abbastanza intuitivo.

Metto a disposizione il codice per risolvere il problema per tutti coloro che, alle prime armi con CSS siano in cerca di risolvere questo dilemma…

Div centrato verticalmente ed orizzontalmente nella pagina

#container {
width: Xpx;
height: Ypx;
position: absolute;
top: 50%;
left: 50%;
margin-top: -(X/2)px;
margin-left: -(Y/2)px;
}
X è la larghezza del vostro DIV, mentre Y rappresenta l’altezza.

Una volta che avete creato il DIV con le prime tre (3) istruzioni, lo posizionate dal top e dal bordo sinistro della pagina (left) al 50% della finestra. Questo sposta il vertice alto/sinistro nell’esatto centro, posizionando così il blocco non esattamente nel centro, ma, appunto, sfasato sulla destra e sul fondo.

Regoliamo la posizione impostando un margine negativo al blocco per “tirarlo” a posto. Con una dimensione di X/2 (X mezzi) e Y/2 (Y mezzi), riusciamo così a farsi che il centro del nostro DIV sia esattamente al centro della nostra pagina.

E ora…continuate a divertirvi con i CSS!!!

Bookmark and Share

Commenti a “DIV centrato nella pagina”

  • ERRORE!!!
    margin-top: -(X/2)px;
    margin-left: -(Y/2)px;

    ESATTO…
    margin-top: -(Y/2)px;
    margin-left: -(X/2)px;

  • Effettivamente, scritto sovrappensiero errando le variabili del posizionamento! Grazie!

  • 3
    christian:

    adesso comincio a masticarne di div :O) un’altra lacuna colmata…grazie

  • grazie mille

    mi hai risparmiato una serata di scleri….

  • Occhio però, le espressioni nei CSS non sono mai consigliabili. Vi invito a leggere questo paragrafo:

    http://developer.yahoo.com/performance/rules.html#css_expressions

  • Ma chiaramente io non parlavo di inserire le espressioni nel documento CSS, bensì i valori dimezzati. Insomma, se X valeva 50, al posto di (X/2) bisogna scrivere 25… Facile, no?

  • Grazie 1000 mi hai risparmiato un cazziatone infinito!!!

  • Bene, mi fa piacere!!! ;)

  • Salve,
    riscontro un problema piuttosto fastidioso e di cui non riesco a trovar soluzione. Se il div, per qualsivoglia motivo*, è più grande della finestra del browser, la parte – più o meno piccola – superiore diviene non visibile e tagliata fuori anche dalle barre di navigazione.

    Qualche suggerimento?

    (*) ad esempio un monitor piccolo e/o una risoluzione video troppo alta e/o troppe “barre” installate sul browser…

  • Aggiungo,

    ho trovato questa interessante soluzione a questo sito: http://stylizedweb.com/2008/02/01/vertical-align-div/

    Di seguito, per praticità, il codice:

    Content

    html, body {
    height: 100%;
    margin: 0;
    padding: 0;
    }

    * {
    margin:0px auto;
    padding:0;
    }

    div#shim {
    visibility: hidden;
    width: 100%;
    height: 50%;
    margin-top: -200px;
    float: left;
    }

    div#wrapper {
    width: 1000px;
    height: 400px;
    clear: both;
    background:red;
    position: relative;
    top: -200px;
    /* IE4ever Hack: Hide from IE4 **/
    position: static;
    /** end hack */

    }

    /* Hide from IE5mac \*//*/
    div#shim {
    display: none;
    }

    html, body {
    height: auto;
    }
    /* end hack */

    /* ]]> */

    Ovviamente il CSS va messo in cima, ma credo non siano cose che vadano sottolineate.

    A presto,
    E.

  • Perfetto!Non sapete quanto mi avete aiutato! Grazie mille

Lascia un commento

Ti ricordo che è sempre necessario trascrivere le due parole che leggi nel box rosso. È una misura antispam.