Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    div come bottone : cliccabile e con effetto

    salve,

    nel mio sito ho sempre utilizzato JS per impostare su un div un effetto hover (con jquery seleziono l'id del div e tolgo/aggiungo la classe che mi fà l'effetto selezionato) e sempre con jquery imposto l'evento link!

    ora, è possibile fare tutto questo semplicemente con css?

    a titolo di esempio, vorrei ottenere un pulsante tipo quelli che ci sono su questo sito in alto (HTML.it, Siti, Servizi, News... Games, Hosting, Corsi)...

    lasciando perdere sfumature o grafiche particolari, per ora mi basta una grafica semplice. poi ci gioco sopra a mio piacimento.

    sò dell'esistenza del .hover da css, che però non funziona su tutti i browser (es IE);
    e per rendere il link cliccabile? (cioè dove esce la "manina", e cliccandoci mi porti su un'altra pagina).

    insomma, vorrei trovare una soluzione CSS cross-browser

    quello che ho fatto fin ora :

    codice:
    <script type="text/javascript">
    	$(document).ready(function() {
    		$('#btn1').mouseover(function() { $(this).removeClass().addClass('optmenuparton'); });
    		$('#btn2').mouseover(function() { $(this).removeClass().addClass('optmenuparton'); });
    		$('#btn3').mouseover(function() { $(this).removeClass().addClass('optmenuparton'); });
    		$('#btn4').mouseover(function() { $(this).removeClass().addClass('optmenuparton'); });
    		$('#btn5').mouseover(function() { $(this).removeClass().addClass('optmenuparton'); });
    		$('#btn6').mouseover(function() { $(this).removeClass().addClass('optmenuparton'); });
    		$('#btn7').mouseover(function() { $(this).removeClass().addClass('optmenuparton'); });												
    		
    		$('#btn1').mouseout(function() { $(this).removeClass().addClass('optmenupartoff'); });
    		$('#btn2').mouseout(function() { $(this).removeClass().addClass('optmenupartoff'); });
    		$('#btn3').mouseout(function() { $(this).removeClass().addClass('optmenupartoff'); });
    		$('#btn4').mouseout(function() { $(this).removeClass().addClass('optmenupartoff'); });
    		$('#btn5').mouseout(function() { $(this).removeClass().addClass('optmenupartoff'); });
    		$('#btn6').mouseout(function() { $(this).removeClass().addClass('optmenupartoff'); });
    		$('#btn7').mouseout(function() { $(this).removeClass().addClass('optmenupartoff'); });												
    	});				
    </script>
    
    <div class="optionmenu">
    	<div class="optmenupartoff" id="btn1">
    		<div class="optmenulabel">
    			Edit
    		</div>
    	</div>
    	
    	<div class="optmenupartoff" id="btn2">
    		<div class="optmenulabel">		
    			Remove
    		</div>
    	</div>
    
    	<div class="optmenupartoff" id="btn3">
    		<div class="optmenulabel">
    			Export
    		</div>
    	</div>
    	
    	<div class="optmenupartoff" id="btn4">
    		<div class="optmenulabel">
    			Vote
    		</div>
    	</div>
    
    	<div class="optmenupartoff" id="btn5">
    		<div class="optmenulabel">		
    			Categories
    		</div>
    	</div>
    	
    	<div class="optmenupartoff" id="btn6">
    		<div class="optmenulabel">		
    			History
    		</div>
    	</div>
    	
    	<div class="optmenupartoff" id="btn7">
    		<div class="optmenulabel">
    			Comments
    		</div>
    	</div>	
    </div>
    
    
    
    .optmenupartoff{width:76px; text-align:center; float:left; font-weight:bold; height:25px; background-color:#FFFFFF; margin-left:10px; margin-right:10px;
     border:#666666 ridge 2px;}
     .optmenuparton{width:76px; text-align:center; float:left; font-weight:bold; height:25px; background-color:#CCCCCC; margin-left:10px; margin-right:10px;
     border:#666666 ridge 2px;}
    saluti e grazie per il vostro tempo

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    puoi farlo usando delle liste ordinate come nel sito cssplay.co.uk, sezione menu

    se non te la senti di modificare tutto, almeno ottimizza quel javascript... così diventa ingestibile
    togli la classe optmenupartoff dal codice html e definisci i div in modo che assumano lo stile che avrebbero da non selezionati . Quando li selezioni aggiungi la classe optmenuparton, quando sono deselezionati la togli.

    codice:
    $(document).ready(function() {
        $('.optionmenu > div').hover(function() {
            $(this).addClass('optmenuparton');
        },
        function() {
            $(this).removeClass('optmenuparton');
        }
    );
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    Originariamente inviato da fcaldera
    definisci i div in modo che assumano lo stile che avrebbero da non selezionati
    eh ma è proprio in optmenupartoff che definisco come devono essere da non selezionati :
    quindi se imposto quella classe come iniziale, nel momento che aggiungo optmenuparton devo togliere optmenupartoff no?

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da fcaldera
    definisci i div in modo che assumano lo stile che avrebbero da non selezionati
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    eh ho capito..ma per definirli associo una classe (o gli scrivo style:"attributi")...ma preferisco gestirla con la classe...

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    alla fine ho risolto con css, così :
    codice:
    a.bmenu:link {width:90px; float:left; background-color:#000000; color:#FFFFFF; text-decoration:none; padding:1px; border:#FFFFFF 3px ridge;}
    a.bmenu:visited {width:90px; float:left; background-color:#000000; color:#FFFFFF; text-decoration:none; padding:1px; border:#FFFFFF 3px ridge;}
    a.bmenu:hover {width:90px; float:left; background-color:#990000; color:#FFFFFF; text-decoration:none; padding:1px; border:#FFFFFF 3px ridge;}
    
    .headermenubottom{width:98px; float:left; background-color:#000000; text-align:center;}
    
    <div class="headermenubottom">
        HOME
    </div>
    sembra funzionare perfettamente se ho sbagliato qualcosa fatemi sapere...

    saluti!!!

  7. #7
    Se non ho preso un abbaglio, anche QUESTO tutorial potrebbe esserti d'aiuto.
    «Se non vi è rimasta molta anima e lo sapete, vi resta ancora dell'anima.»
    Occhio all' Ursupanaru!

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    ottimo! grazie

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.