2013-04-18 9 views
36

Witam Używam Bootstrap.Jak mogę wyłączyć kolor wskaźnika aktywacji początkowej dla łączy

Bootstrap definiuje

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

mam to linki/CSS-klasy

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

Jak mogę wyłączyć kolor odkurzacz?

Chcę, aby zielone linki pozostały zielone, a żółte żółte, bez nadpisywania: hover dla każdej klasy? (to pytanie nie jest obowiązkowe w zależności od bootstrapu).

muszę coś podobnego

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

i myślę

.yellow { 
    color: yellow !important; 
} 

nie jest dobrą praktyką

Odpowiedz

117

jeśli ktoś dba Skończyło się na:

a { 
    color: inherit; 
} 
+80

Dbam o wutzebaer ... I care –

+4

Dbam również. :) –

+13

napisałeś już, że =) – wutzebaer

1

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

Spowoduje to zastąpienie domyślnego dymku ładowania początkowego.

+0

to nie jest odpowiedź, bootstrap mówi, że odkurzony linki uzyskać kolor # 005580, ale chcę przesłonić tę definicję, że kolor pozostaje taki, jak jest – wutzebaer

10

pójdę z czymś 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

i zapytałem: "bez przesłonięcia: aktywuj dla każdej klasy" – wutzebaer

+2

cóż, myślę, że byłoby znacznie lepiej i dobra praktyka, aby usunąć styl łącza z bootstrap.css i zmień go tak, jak chcesz! – Mahmoud

0

Nie jestem ekspertem Bootstrap, ale brzmi mi się, że należy zdefiniować nowa klasa o nazwie nohover (lub coś podobnego), a następnie w kodzie połączenia dodaj klasę jako ostatnią wartość atrybutu e:

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

Następnie w pliku/CSS Bootstrap mniej określić nohover (na przykładzie JSFiddle powyżej):

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

rozwidlony JSFiddle tutaj: http://jsfiddle.net/9rpkq/

+0

hm tak kolor: żaden nie jest lewy? Spróbuję, ale jestem na święta na teraz =) – wutzebaer

2

Można strip all: hover style rules from document.styleSheets.

Wystarczy przejrzeć wszystkie style CSS za pomocą JavaScript i usunąć wszystkie reguły, które zawierają ": hover" w ich selektorze. Używam tej metody, kiedy muszę usunąć: hover style from 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); 
     } 
    }); 
}); 

ja używaliśmy podkreślenia dla iteracji tablic, ale można napisać te z pętli czystym js także:

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

Plus jeden za uroczą hackę – ericpeters0n

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

dodaj również wyjaśnienia. –

+2

Rozwiń odpowiedź, podając dodatkowe informacje i informacje. Tylko blok kodu raczej nie pomoże przyszłym odwiedzającym. – Magisch