Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: li e li:hover

  1. #1
    Utente di HTML.it L'avatar di grisson
    Registrato dal
    Jul 2006
    Messaggi
    166

    li e li:hover

    buongiorno a tutti.
    nel mio sito devo fare un menu un po come quello che c'è nella home page di html.it.
    ho fatto ad esempio
    <ul>[*]link1[*]link2[*]eccetera...[/list]

    nel css ho messo li{background-color:#0066FF;}

    non esiste una cosa del tipo li:hover{ background-color:#FF9900;}? :master:

    cioè voglio che quando passo sopra cn il mouse cambia il colore di sfondo..

    ps: i colori li ho presi a caso per provare.


  2. #2
    ciao!
    un'indagine sulla scena del crimine mi dice che purtroppo IE non supporta la pseudo-classe :hover su elementi diversi dai link. in alternativa puoi usare javascript, oppure, semplicemente, inserire i link all'interno di[*] e fare in modo che abbiano la stessa larghezza del loro elemento genitore.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Come ben sanno i frequentatori del forum, le pseudoclassi nel browser IE funzionano solo sui link.
    Quindi
    li a:hover { ... } /* (funziona in tutti i browser) */
    e` preferibile a
    li:hover { ... } /* (valido, ma non riconosciuto da IE) */

    Piuttosto fai in modo che il link occupi tutta la "cella":
    li a { display: block; width: 100%; height: 100%; }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Utente di HTML.it L'avatar di grisson
    Registrato dal
    Jul 2006
    Messaggi
    166
    Originariamente inviato da Mich_

    Piuttosto fai in modo che il link occupi tutta la "cella":
    li a { display: block; width: 100%; height: 100%; }
    grazie mille è proprio quello che volevo....

    comunque per javascript cosa ci sarebbe da fare?

  5. #5
    soluzione semplice, rozza & efficace:

    codice:
    <li onmouseover="this.style.background='#ccc'" onmouseout="this.style.background='#fff'">...
    se non hai tempo da perdere con funzioni, proprietà e metodi.

  6. #6
    Utente di HTML.it L'avatar di grisson
    Registrato dal
    Jul 2006
    Messaggi
    166
    ok grazie

  7. #7
    Per un javascript non intrusivo (che non tocca cioè il markup):

    codice:
    XHTML
    
    <ul id="menu">[*]Uno[*]Due[*]Tre[/list]
    
    
    CSS
    
    #menu li
    {
       background-color:#06F;
    }
    #menu li:hover,
    .li_hover
    {
       background-color:#F90;
    }
    
    
    Javascript
    
    window.onload = function()
    {
       var menu = document.getElementById('menu')
       var lis = menu.getElementsByTagName('li')
    
       for (var i = 0; i < lis.length; i++)
       {
          lis.item(i).onmouseover = function()
          {
             this.className = 'li_hover'
          }
          lis.item(i).onmouseout = function()
          {
             this.className = ''
          }
       }
    }

  8. #8
    Utente di HTML.it L'avatar di grisson
    Registrato dal
    Jul 2006
    Messaggi
    166
    interessante quello che hai mandato ma non funziona con ie. con firefox va, presuppongo perchè hai dichiarato #menu li:hover.

    è così oppure c'è qualcosa di sbagliato?

  9. #9
    No, dovrebbe essere giusto. Non capisco perchè non funziona. Prova, eventualmente, a modificare come segue il CSS:

    codice:
    #menu li
    {
       background-color:#06F;
    }
    #menu li:hover,
    #menu .li_hover
    {
       background-color:#F90;
    }
    Ho fatto una verifica e il problema dovrebbe proprio risolversi con l'aggiunta qui proposta.

  10. #10
    Utente di HTML.it L'avatar di grisson
    Registrato dal
    Jul 2006
    Messaggi
    166
    adesso funziona.
    grazie mille.


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.