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

    Problema banale su active menu orizzontale

    Salve a tutti,sto creando un menu orizzontale con i vari effetti hover active ecc,però mi trovo davanti un problema;vorrei fare uscire il testo nero solo quando si è nello stato hover e nello stato active.
    Vi scrivo il codice ,cosi potete analizzare voi stessi .Grazie a tutti in anticipo.
    codice:
    ul#menu {
    	position:absolute;
    	top:196px;
    	left:72px;
        font-family:Alien Encounters ;
        font-size: 21px;
        margin: 0;
        padding: 0;
        list-style: none;
    }
      
    ul#menu li {
    	 
        display: block;
        width: 150px;
        height: 30px;
        margin: 2px;
        float: left; 
    }
      
    ul#menu li a{
        color: #838383;
        display: block;
        font-weight: bold;
        line-height: 30px;
        text-decoration: none;
        width: 150px;
        height: 30px;
        text-align: center;
    }
    ul#menu li.active, ul#menu li:hover a:hover  {
        color:black;  
        background-color: #838383;
       
    }
    PS:Gli stati devono essere:
    Active: background-color: #838383; e colore testo:black
    Hover: background-color: #838383; e colore testo:black lo stesso
    normale cioè passivo:nessun background color e colore testo invece cosi #838383

    Spero mi sia spiegato al meglio.

  2. #2
    Scusate ho sbagliato sezione..... chi me lo sposta grz

  3. #3
    Chi mi aiuta grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    C'e` qualche cosa che non mi torna esatto nel codice CSS.

    Per poterlo correggere occorre conoscere anche il codice HTML.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    ciao,grazie per avermi risposto...l'html ancora è semplice eccolo...
    codice:
    <ul id="menu">
    <li class="active">Home[*]Prodotti[/list]
    ho messo li con class active per vedere se funzionava;comunque mi sapresti dire perchè quando premo un pulsante del menu non rimane mai premuto?Grazie ancora.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non mi piace il nome active per una classe: active e` parola chiave del CSS e questo puo` generare confusione (nel programmatore prima che nel brwoser).

    Quindi io farei:
    codice:
     HTML:
    <ul id="menu">
    <li class="attivo">Home[*]Prodotti[/list]
    
    CSS:
    #menu {
      ...
    }
    #menu li {
      ...
    }
    #menu li a {
      ...
      color: #838383;
      background: white;  /* oppure transparent */
    }
    #menu li a:hover {
      color:black;  
      background-color: #838383;
    }
    #menu li.attivo a, #menu li.attivo a:hover {
      ...
      color:black;  
      background: #838383;
    }
    Spero di aver interpretato giusto.

    Nota che se il blocco <a> copre completamente il[*] non ha senso definire uno stile per li:hover perche` non verra` mai usato

    E per coprire competamente il[*] con l'<a> potrebbe essere corretto definire anche
    codice:
    ... a {
      display: block;
      width: 100%;
      height: 100%;
    }
    Tieni presente che con il tuo codice al click chiami un JS. Alla fine del JS ho inserito un return:false per evitare che il link venga eseguito (e la pagina venga spostata in cima)

    Comunque la classe attiva non viene modificata, quindi quando rilasci il mouse o lo sposti dal link questo torna nella posizione a riposo.
    Con JS puoi anche modificare la classe (puoi attribuire il link ad un'atra classe, oppure puoi cambiare gli attributi CSS a quel link). Questo e` un problema diverso, che puoi chiedere nel forum JS.

    E mi pare che quel JS abbia degli errori.
    Normalmente si usa una cosa di questo tipo:
    document.getElemenById('article').style.visibility ='visble';
    dove chiaramente "article" e` un id attribuito ad uno (ed uno solo) oggetto della pagina

    la tua sintassi potrebbe funzionare in qualche brwoser (ad esempio IE se usato in modo retrocompatibile), ma non in tutti.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Ti ringrazio,infatti il problema principale era il nome della classe active che faceva conflitto,adesso come hai fatto tu funziona perfettamente.Grazie ancora.

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.