2013-04-18 11 views
36

Ciao sto usando Bootstrap.Come posso disabilitare il colore al passaggio del mouse di bootstrap per i collegamenti

Bootstrap definisce

a:hover, a:focus { 
    color: #005580; 
    text-decoration: underline; 
} 

ho questo link/CSS-classi

<a class="green" href="#">green text</a> 
<a class="yellow" href="#">yellow text</a> 

Come posso disabilitare il colore Hoover?

Desidero che i collegamenti verdi rimangano verdi e quelli gialli gialli, senza escludere: al passaggio del mouse per ogni singola classe? (questa domanda non è obbligatoria in base al bootstrap).

ho bisogno di qualcosa di simile

a:hover, a:focus { 
    color: @nonhoovercolor; 
} 

e penso

.yellow { 
    color: yellow !important; 
} 

non è una buona pratica

risposta

117

se qualcuno avesse voglia ho finito con:

a { 
    color: inherit; 
} 
+80

Mi interessa wutzebaer ... Mi interessa –

+4

Mi interessa anche. :) –

+13

hai già scritto che =) – wutzebaer

1

Mark color: #005580; come color: #005580 !important;.

Sostituisce il hover di bootstrap predefinito.

+0

questa non è la risposta, bootstrap dice che i collegamenti passato l'aspirapolvere ottenere il colore # 005580, ma voglio sovrascrivere questa definizione che il colore rimanga come è – wutzebaer

10

Vorrei andare con qualcosa come this JSFiddle:

HTML:

<a class="green" href="#">green text</a> 
<a class="yellow" href="#">yellow text</a> 

CSS:

body { background: #ccc } 
/* Green */ 
a.green, 
a.green:hover { color: green; } 
/* Yellow */ 
a.yellow, 
a.yellow:hover { color: yellow; } 
+0

ho chiesto: "senza eseguire l'override: hover per ogni singola classe" – wutzebaer

+2

beh, credo che sarebbe molto meglio e buona pratica per rimuovere lo stile di collegamento dal bootstrap.css e ri-stile come vuoi! – Mahmoud

0

io non sono un esperto di Bootstrap, ma suona per me che è necessario definire una nuova classe chiamata nohover (o qualcosa di equivalente) quindi nel codice del link aggiungi la classe come ultimo attributo valore e:

<a class="green nohover" href="#">green text</a> 
<a class="yellow nohover" href="#">yellow text</a> 

Poi nel file/CSS Bootstrap MENO, definire nohover (utilizzando l'esempio JSFiddle sopra):

a:hover { color: red } 
/* Green */ 
a.green { color: green; } 
/* Yellow */ 
a.yellow { color: yellow; } 
a.nohover:hover { color: none; } 

biforcuta la JSFiddle qui: http://jsfiddle.net/9rpkq/

+0

hm così colore: nessuno è il trucco? lo proverò ma sono in vacanza per ora =) – wutzebaer

2

Si potrebbe elimina tutto: regola lo stile di hover da document.styleSheets.

Basta passare attraverso tutti gli stili CSS con JavaScript e rimuovere tutte le regole, che contengono ": hover" nel loro selettore. Io uso questo metodo quando ho bisogno di rimuovere: stili di passaggio del mouse da bootstrap 2.

_.each(document.styleSheets, function (sheet) { 
    var rulesToLoose = []; 
    _.each(sheet.cssRules, function (rule, index) { 
     if (rule.selectorText && rule.selectorText.indexOf(':hover') > 0) { 
      rulesToLoose.push(index); 
     } 
    }); 

    _.each(rulesToLoose.reverse(), function (index) { 
     if (sheet.deleteRule) { 
      sheet.deleteRule(index); 
     } else if (sheet.removeRule) { 
      sheet.removeRule(index); 
     } 
    }); 
}); 

ho usato sottolineatura per iterare array, ma si potrebbe scrivere quelli con anello puro js così:

for (var i = 0; i < document.styleSheets.length; i++) {} 
+1

Più uno per un affascinante trucco – ericpeters0n

4
a {background-color:transparent !important;} 
+2

aggiungere anche alcune spiegazioni. –

+2

Si prega di considerare l'espansione della risposta con alcune informazioni aggiuntive e comprensione. È improbabile che un solo blocco di codice sia utile per i futuri visitatori. – Magisch

Problemi correlati