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

    Compatibilità CSS menu a tendina Ie 7 e 8

    Ciao a tutti,
    spero che qualcuno di voi, illuminati del CSS, sia in grado di darmi una mano...
    Ho un menu a tendina realizzato coi CSS.
    Non riesco a renderlo compatibile con ie7.
    Nel senso che su ie8, ff, chrome funziona, mentre su ie 7 i sottolivelli sono tutti megadistanti tra loro.
    Ecco il codice css...
    codice:
    #menu{
    width:900px;
    height:39px;
    background-image:url(../../img/bg_menu.jpg);
    vertical-align: top;
    }
    /*Qui: Elimininiamo margini, padding e marcatore da liste e list-item, definiamo l'altezza di linea del menu e gli stili di base dei link:*/
    
    ul#nav,ul#nav li,ul#nav ul{ 
    
    margin: 0;
    padding: 0;
    list-style: none;
    line-height: 39px;
    font-family: Arial, Helvetica, sans-serif;
    font-size:12px;
    z-index:1;
    }
    
    ul#nav a{
    display: block;
    padding: 0 1em; /*il secondo era un 1*/
    text-decoration: none;
    color:#FFFFFF;
    background-image:url(../../img/bg_menu.jpg);
    
    }
    
    ul#nav a:hover{
    color: #CCCCCC ;
    }
    
    
    /*affiancare i list-item di primo livello rendendoli float e posizionarli relativamente. Dovremo però aver cura di annullare l'effetto dei float sui list-item di secondo livello, grazie ad una regola più specifica:*/
    ul#nav li{
    float: left;
    position: relative ; 
    }
    
    ul#nav li li{
    float: none; /*Secondo livello di indentazione*/
    } 
    
    ul#nav ul{position: absolute; top: 3.3em;left: -9999px; width: 20em;} /* DA qui determino larghezza del ul del sottomenu*/
    ul#nav li:hover ul{left: auto}
    Non riesco a capire dove stia l'errore..
    Voi che ne dite?


    Grazie a chi mi darà una mano...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La mia palla di cristallo mi dice che hai una DTD Transitional.
    Prova con XHTML 1.0 Strict e magicamente anche IE 7 dovrebbe "fare il bravo".

    Comunque il problema sta nel diverso box model presente in IE (problema che si riscontra quando si usano padding e border), oppure in qualche baco di IE (margini raddoppiati nei float?)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Ciao Mich_ , grazie per la risposta.
    In effetti il mio doctype é il seguente:

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    Lo cambio in
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    ma non cambia nulla...

    neanche cancellando la cache.

    Possibile che non ci sia la compatibilità tra ie7 e 8?
    cioé, da Microsoft mi aspetto un po' di tutto, ma così tanto su un banale css...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    IE e` stata obbligata dalla concorrenza ad adeguarsi agli standard: e ad ogni versione si avvicina sempre piu` (in modo asintotico == vuol dire che in un tempo infinito arrivera` allo standard pieno).

    Non capisco perche` non funzioni con la DTD strict: il DOCTYPE e` sulla prima riga del file?

    Altrimenti prova ad usare gli hack per IE6: ci sono siti specializzati negli hack per IE: uno e` anche citato tra i "lilnk utili".
    Ad esempio metti in ogni oggetto che ha il float anche la dichiarazione (pleonastica)
    display: inline;
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Ciao Mich_ ,
    si, il Doctype é sulla prima riga.

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    Il menu viene richiamato nelle pagine attraverso un banale include

    codice:
    <?php include('include/php/menu.php'); ?>

    Ho provato a inserire i display: inline; , ma non cambia nulla. Anzi, "rovina" la visualizzazione in ie8...

    Il file incluso, quello del menu, é una semplicissima serie di
    <ul>[*][*][*][/list]
    dove alcune voci hanno i sottomenu. Il tutto racchiuso in un div.


    I sottolivelli vengo distanziati secondo me di quel top 3.3em. Non solo dal "primo livello", ma anche tra di loro. Infatti i loro "padding" sono costanti..
    La soluzione, penso, da buon ignorantone, sia da ricercarsi in quelle righe lì..

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 © 2025 vBulletin Solutions, Inc. All rights reserved.