Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129

    Problema con impostazione...

    Salve a tutti...
    ho un problema... quando creo un sito solitamente inserisco tutti i componenti della pagina in dei box, questi ultimi a loro volta li posiziono con distanza in pixel dall'altro e sinistra dello schermo!!! (classico:top: 17px; left: 308px
    Così compongo tutta la pagina web e credo sia un'ottimo modo! di solito calcolo sempre 1280 di larghezza max pixel....

    Il problema è che ad esempio se la pagina viene aperta da qualcuno che ha di risoluzione di 1600 di larghezza questa ovviamente è tutta allineata a sinistra, decentrata, dato che segue le direttive che io gli ho dato!

    Però gli altri siti, almeno in rete, vengono centrati sempre rispettivamente alla risoluzione monitor che si usa!!!

    Come quindi posso sviare questo problema!? come devo impostare la pagina in modo che i miei box risultino sempre centrati in qualsiasi risoluzione!?!? grazie

  2. #2

    L'approccio non è quello adatto...

    Purtroppo il posizionamento assoluto che stai usando non è una buona idea per l'intero layout con riferimento al bordo dello schermo... dando una distanza fissa sarà difficile che tu riesca a centrare i box in tutti i monitor. Pensa ad un monitor 16:9, la distanza tra il lato sinistro ed il centro dello schermo è diversa che in un 4:3 . Quindi centrare così con layout assoluto non è possibile senza l'utilizzo dei Javascript.
    E' per questi motivi che sarebbe buona norma lasciare al browser il compito di centrare i tuoi box, e ridurre l'assoluto a pochi elementi necessari.

    Tuttavia nel tuo caso, se non vuoi dover rifare il sito da capo, quello che ti consiglio è di "forzare la dimensione dello schermo". Ovviamente non mi riferisco al monitor, ma al riferimento del posizionamento assoluto.

    1. racchiudi l'intero body in un div
    2. rendi il div il nuovo riferimento delle coordinate
    3. centra dinamicamente il div nello schermo
    4. adatta le coordinate assolute dei blocchi interni

    in questo modo non usi più l'angolo del monitor come riferimento (che si sposta al cambiare della risoluzione) ma l'angolo del div che tu deciderai di larghezza fissa, così la posizione dei blocchi assoluti sarà sempre relativa al div che li contiene. Ora centrando il div, l'intero sito viene centrato.

    Piccolo esempio pratico:
    codice:
    <html>
       <head>
          ...
       </head>
       <body>
          <div id="container">
             
          </div>
       </body>
    </html>
    e il css
    codice:
    body{
       text-align: center;   /* per centrare in IE7 */
    }
    
    #container{
       width: 400px;
       height: 500px;   /* queste dimensioni le cambi in modo da contenere perfettamente i blocchi */
       position: relative;   /* usa il div come riferimento per i blocchi assoluti */
       margin: auto;   /* centraggio automatico del div (e quindi dei blocchi assoluti) */
    }
    
    /* tutti i left e top dei blocchi assoluti vanno modificati in modo da avere come riferimento l'angolo in alto a sinistra *del div* e non più dello schermo, puoi aiutarti con un border: 1px solid black; nel div per regolarti meglio */
    HTH
    ciauz
    "La mia vita finirà quando non vedrò più la gente ridere.... non necessariamente alle mie battute."

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    grazie!!! adesso ci provo...

    ma text-align: center; /* per centrare in IE7 */
    funziona solo per IE...

    e se voglio ottenere lo stesso per Netscape e safari!??! lo fà lo stesso!?

    grazie ancora

  4. #4

    Quello è solo un bugfix

    Originariamente inviato da dariocena

    ma text-align: center; /* per centrare in IE7 */
    funziona solo per IE...

    e se voglio ottenere lo stesso per Netscape e safari!??! lo fà lo stesso!?
    In realtà secondo lo standard W3C, per centrare un blocco non occorre il "text-align: center", questa è solo un'iniziativa di IE7 - più comunemente definita bug e/o errore - che mi sono ritrovato a dover imparare a mie spese quando ho cominciato a vedere tutti i miei siti rimanere appiccicati al lato sinistro...
    Quindi il problema negli altri browser non si pone.
    Il vero codice che centra il blocco è la riga "margin: auto;", che è standard e funziona in tutti i maggiori browser (solo IE7 in più vuole anche il "text-align: center;" sul parent ).

    HTH
    ciauz
    "La mia vita finirà quando non vedrò più la gente ridere.... non necessariamente alle mie battute."

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    si vero!!! infatti adesso và alla grande!!! grazie mille!!!!!!!!!!!!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    salve....

    proprio stamattina mi sono accorto da un altro pc che nn mi andava bene... avevo controllato male e per fortuna me ne sono accorto... in poche parole mi centra tutti gli elementi con box relative... ma gli absolute no... mmm....
    Quindi viene tutto sfalsato!!!centra male la pagina...
    io ho messo tutti i box in un unico solo come mi avete detto, mettendo il <div id="contenitore"> dopo il body e una chiusura </div> prima del /body da che potrà dipendere?!?uff...

    Grazie ancora!!!!!!!!

  7. #7

    details required

    Così per immaginazione è difficile da rispondere... è possibile avere un link alla pagina o avere modo di vedere del codice dal vivo?

    waiting
    ciauz
    "La mia vita finirà quando non vedrò più la gente ridere.... non necessariamente alle mie battute."

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.