Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [CSS] Differenze di layout tra IE e FF

    Ciao a tutti e grazie in anticipo a chi mi vorrà aiutare.
    Premetto che non sono un guru dei CSS ma, dopo aver sbattuto la testa per qualche giorno, mi sono arreso e chiedo aiuto.

    Vorrei simulare il layout di Gestione Risorse di Windows in un controllo server ASP.NET; in sintesi dovrebbe avere una toolbar in testa, seguita da unall'inizio, un box che conterrà le cartelle sulla sinistra e un box con i file sulla destra. I due box hanno le scrollbar verticali.

    Per semplificare ho estratto l'HTML e incluso il CSS nell'HTML stesso:

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
    <html>
    <head>
        <style type="text/css">
    .control 
    {
        position:absolute;
        top:20px;
        left:20px;
        height:350px;
        width:350px;
        border-style:solid;
        border-width:1px;
        float: right;
    }
    
    .toolbar
    {
        position:absolute;
        top:0px;
        left:0px;
        right:0px;
        height:24px;
        margin:0px;
        padding:4px 8px 4px 8px;
        border-width:1px;
        border-style:outset;
        background-color:#F5F5F5;
    }
    
    .path
    {
        position:absolute;
        top:34px; left:0px; right:0px;
        height:16px;
        margin:0px;
        padding:2px;
        border-width:1px;
        border-style:inset;
        background-color:White;
        overflow:hidden;
    }
    
    .content
    {
        position:absolute;
        top:58px; bottom:0px; right:0px; left:0px;
        background-color:Green;
    }
    
    .tree 
    {
        position:absolute;
        top:0px;
        left:0px;
        bottom:0px;
        width:200px;
        padding:5px;
        float:left;
        overflow: auto;
        border-right: solid 1px black;
        background-color: #F5F5F5;
        float: right;
    }
    
    .files
    {
        position:absolute;
        top:0px;
        left:210px;
        right:0px;
        bottom:0px;
        padding:5px;
        overflow:auto;
        background-color: #F5F5F5;
        float: right;
    }
            </style>
    
    </head>
    
    <body>
    
    
    <div class="control">
    
        
        <div class="toolbar">
            toolbar
        </div>
        
        
        <div class="path">
            percorso corrente
        </div>
    
        
        <div class="content">
    
            
            <div class="tree">
                albero cartelle
    
                
    
                riga sx
    riga sx
    riga sx
    riga sx
    riga sx
    
                riga sx
    riga sx
    riga sx
    riga sx
    riga sx
    
                riga sx
    riga sx
    riga sx
    riga sx
    riga sx
    
                riga sx
    riga sx
    riga sx
    riga sx
    riga sx
    
                riga sx
    riga sx
    riga sx
    riga sx
    riga sx
    
                ultima riga sx
            </div>
    
            <div class="files">
                elenco files
    
                
    
                riga dx
    riga dx
    riga dx
    riga dx
    riga dx
    
                riga dx
    riga dx
    riga dx
    riga dx
    riga dx
    
                riga dx
    riga dx
    riga dx
    riga dx
    riga dx
    
                riga dx
    riga dx
    riga dx
    riga dx
    riga dx
    
                riga dx
    riga dx
    riga dx
    riga dx
    riga dx
    
                ultima riga dx
            </div>
    
        </div>
    
    </div>
    
    </body>
    </html>
    Su FF il layout è perfetto, mentre su IE6 il box di sinistra e di destra "sbordano" e non hanno le scrollbar. Inoltre sia la toolbar che il box del percorso non occupano tutta la larghezza.
    Ho provato a modificare il CSS in ogni modo (con l'intenzione di usare poi i commenti condizionali) ma senza successo.

    Dove sto sbagliando?

  2. #2
    Ho fatto uno screenshot per essere più chiaro:
    Immagini allegate Immagini allegate

  3. #3
    Nessuno si sbilancia in una riposta?

    Io ho provato di tutto ma non arrivo a nulla, le differenze rimangono; quella nell'immagine è la situazione migliore che sono riuscito ad ottenere finora.

    ...perlomeno sgridatemi!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Cosi` ad occhio direi che usi height per limitare/definire le altezze. Pero` IE (quirks mode) prende height come fosse min-height....

    A parte che ci sono cose nella marcatura che non mi piacciono (lista fatta con i
    ), e nei CSS usi il posizionamento assoluto (che io non amo), probabilmente sotto non c'e` nulla, per cui i blocchi non sono limitati, e IE intrpreta secondo la sua logica.

    Ci sono quindi varie cose che puoi fare (provare)
    - passare a XHTML Strict o, in alternativa,
    - mettere un blocco (eventualmente invisibile), che "limita" le colonne: ad esempio un blocco largo tutto lo spazio e posizionato in modo assoluto (visto che ti piacciono gli assoluti)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Mich_, anzitutto grazie per la risposta.

    Sono d'accordo con quello che dici: anche io preferirei un posizionamento relativo ma, dato che non sono un genio con i CSS , per iniziare ho preferito riprodurre pixel per pixel quello che avevo progettato su carta.

    Per quanto riguarda i
    ci sono solo nell'esempio che ho postato : volevo una cosa semplice che chiunque, con un copia/incolla, potesse testare velocemente.
    In realtà il contenuto viene composto a runtime leggendo dal filesystem.

    Io eviterei la tua prima ipotesi: non essendo un guru non vorrei imbarcarmi nell'XHTML strict. Oppure intendevi dire "cambia il DOCTYPE" e quindi IE funziona in modo più standard? (appena torno in ufficio provo...)

    Per quanto riguarda la seconda non riesco a capire come posso limitare l'altezza delle due colonne (i due DIV tree e files) mettendole in un altro DIV esterno, del quale non riuscirei comunque a limitare l'altezza con IE, ma solo ad impostare la min-height.
    Probabilmente ho spiegato male ciò che voglio ottenere: non voglio che tutto si allunghi per poter contenere le liste ma che (come fa Firefox) appaiano le due scrollbar verticali nel caso una o entrambe le liste siano lunghe.

    Grazie in anticipo per l'aiuto...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da nicorac Sono d'accordo con quello che dici: anche io preferirei un posizionamento relativo
    Questa e` una tua libera interpretazione di cio` che ho detto: Io non ho parlato di posizionamento relativo.
    Se vuoi semplificarti la vita, dimentica l'attributo position.

    ma, dato che non sono un genio con i CSS , per iniziare ho preferito riprodurre pixel per pixel quello che avevo progettato su carta.
    E hai fattomale: il Web non e` un pezzo di carta, e i browser sono una decina (per citare solo i piu` usati: ce ne sono un'altra ventina di nicchia che nonentrano nelle statistiche ma che non si possono ignorare). E ci sono diverse piattaforme (le piu` usate sono Win, Linux, Mac; ma ce ne sono altre). Se poi aggiungi che le risoluzioni dello schermo sono varie decine, che gli schermi nonsono tutti uguali e che non puoi conoscere l'acutezza visiva degli utenti, ottieni una combinazione di proprieta` che si avvicina all'infinito: pretendere di trattare questo come un foglio di carta e` decisamente riduttivo.

    Per quanto riguarda i
    ci sono solo nell'esempio che ho postato : volevo una cosa semplice che chiunque, con un copia/incolla, potesse testare velocemente.
    In realtà il contenuto viene composto a runtime leggendo dal filesystem.
    Se usi i tag non corretti, fai molta piu` fatica a sistemare i CSS: Ci sono dei default nei CSS dei singoli tag, che fanno dalla meta` al 90% del lavoro.

    Io eviterei la tua prima ipotesi: non essendo un guru non vorrei imbarcarmi nell'XHTML strict. Oppure intendevi dire "cambia il DOCTYPE" e quindi IE funziona in modo più standard? (appena torno in ufficio provo...)
    Piu` usi gli standard e piu` semplice e` il lavoro: IE si comporta in modo diverso in presenza di XHTML Strict: il box model e` quasi uguale a quello del W3C.

    Per quanto riguarda la seconda non riesco a capire come posso limitare l'altezza delle due colonne (i due DIV tree e files) mettendole in un altro DIV esterno, del quale non riuscirei comunque a limitare l'altezza con IE, ma solo ad impostare la min-height.
    Probabilmente ho spiegato male ciò che voglio ottenere: non voglio che tutto si allunghi per poter contenere le liste ma che (come fa Firefox) appaiano le due scrollbar verticali nel caso una o entrambe le liste siano lunghe.
    Mi sono spiegato male: devi mettere un blocco SOTTO le due colonne che impedisca alle colonne di sforare.
    IE ha delle limitazioni perche` parte da presupposti diversi dalla logica del W3C.
    In pratica lui (come molti altri programmi Microsoft) dice: se fai quello che ho previsto io e lo fai come piace a me, ti faccio tutto il lavoro io; se invece vuoi fare di testa tua, ti arrangi.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.