Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di nabozzz
    Registrato dal
    Nov 2004
    Messaggi
    145

    Div che non si allineano (IE6)

    Ciao a tutti,

    stavo per tornare alle care vecchie tabelle... mi sono rotto di verificare il funzionamento del layout su tutti i browser. Pensavo fosse tutto ok... e invece ecco che su IE6 dopo aver risolto problemi di ogni sorta, mi capita che la colonna di destra invece di rimanere affiancata a quella di sinistra mi va a caporiga

    Questa è la parte del css incriminata

    Codice PHP:
    #rightcolumn div.news_titolo {
    width220px;
    height52px;
    margin0;
    padding0;
    }

    #rightcolumn div.news_data {
    width220px;
    height21px;
    margin0;
    padding0 0 0 9px;
    backgroundurl(../images/contenuto/news_data.gifno-repeat;
    color#fff;
    font11px/18px Tahoma;
    font-weightbold;
    }

    #rightcolumn div.news_testo {
    width208px;
    margin5px 0 0 0;
    padding0 12px 0 0;
    color#636363;
    font11px/18px Tahoma;
    }

    #rightcolumn div.news_continua {
    width93px;
    height21px;
    margin10px 0 30px 120px;
    padding0 0 0 9px;
    backgroundurl(../images/contenuto/news_continua.gifno-repeat;
    color#fff;
    font11px/18px Tahoma;
    font-weightbold;
    }

    #rightcolumn div.news_continua a {
    color#fff;
    text-decorationnone;
    }

    #rightcolumn div.news_continua a:hover {
    text-decorationunderline;
    }

    #rightcolumn div.profilo_left {
    floatleft;
    width490px;
    margin0;
    padding:0;
    }

    #rightcolumn div.profilo_right {
    floatleft;
    width220px;
    margin0;
    padding:0;

    e questo l'html
    Codice PHP:
    <div id="rightcolumn">
       <
    div class="box_alto">immagine</div>
       <
    div class="profilo_left">
          <
    div class="sezione">Menu</div>
          <
    div class="contenuto">contenuto</div>
       </
    div>
       <
    div class="profilo_right">
          <
    div class="news_titolo">[img]news.gif[/img]</div>
          <
    div class="news_data">10/11/07</div>
          <
    div class="news_testo">[b]sdfsd[/b]</div>
          <
    div class="news_continua">continua</div>
       </
    div>
       <
    div style="clear: both;"></div>
    </
    div
    Grazie a chiunque.... starei già preparando una tabella...
    ... tutti quanti portiamo un tabarro che asconde... qualche volta una gioia, qualche volta un dolore...

  2. #2
    Utente di HTML.it L'avatar di nabozzz
    Registrato dal
    Nov 2004
    Messaggi
    145
    up... vi prego, non costringetemi ad usare le tabelle !!!
    ... tutti quanti portiamo un tabarro che asconde... qualche volta una gioia, qualche volta un dolore...

  3. #3
    A parte il fatto che tornare alle tabelle sarebbe peggio (sia per te che per gli utenti), ricorda che IE 6 non meriterebbe nemmeno di esistere. La mia speranza è infatti che la gente passi presto a IE 7 o ad altri browser (sicuramente migliori di IE) e che il 6 sparisca dalla faccia della terra.

    Detto questo, devi controllare due cose nel tuo layout:

    1. Il padding/border/margin che assegni agli elementi va a SOMMARSI alla loro larghezza/altezza, quindi se un elemento è dichiarato con width: 100px e margin: 0 10px, la sua larghezza totale sarà di 120px.

    2. Se assegni un margine ad un box sullo stesso lato dichiarato per il float (es.: margin-left e float: left), IE 6 RADDOPPIA tale margine. Quindi devi aggiungere alla regola di quel box la dichiarazione display: inline (che non ha effetto su tutti i browser decenti perché i box flottanti sono sempre implicitamente elementi a livello di blocco, mentre su IE 6 risolve il problema dei margini raddoppiati).

    3. Cerca di usare una DTD XHTML Strict 1.0 o quantomeno Transitional 1.0, perché altrimenti IE 6 può metterci "di suo". Inoltre, questo ti assicura una resa abbastanza uniforme su tutti i browser e pensata per il futuro.

    4. NON usare DTD XHTML 1.1 e NON inserire nulla prima della dichiarazione della DTD (nemmeno un commento vuoto), perché altrimenti IE 6 entra in quirks mode (modalità compatibile) e interpreta il markup mantenendo la compatibilità col passato (in pratica usa una DTD HTML precedente alla 4.01).

    Se le colonne vanno a capo invece di stare affiancate, si tratta sicuramente di un problema nelle loro dimensioni che, sommate, eccedono quelle dell'elemento che le contiene. Puoi anche fare in modo che la somma delle dimensioni delle due colonne risulti inferiore a quella dell'elemento che le contiene e quindi flottarle in direzioni opposte (float: left e float :right). Così ottieni un "franco" tra di loro. Ovviamente poi devi ripulire i float opposti con un clear: both.

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.