2016-05-30 8 views
1

Wie font-awesome Symbolfarbe ändern, wenn es aktiv ist, habe ich ein Menü mit font-awesome Links und ich möchte die Symbole Farben ändern, wenn aktiv ist, einige kann dabei helfen?Wie man font-awesome Symbolfarbe ändert, wenn es aktiv ist

Ich habe über Staaten gelesen: https://smacss.com/book/state aber immer noch nicht funktioniert in meinem Code, es ist eine Möglichkeit, dies zu arbeiten? Danke.

jsfiddle: https://jsfiddle.net/oosa8yzk/

mein html

<ul> 
     <li> 
     <a class="menu" data-toggle="tooltip" data-placement="bottom" title="home"> 
      <i class="fa fa-bars fa-2x" aria-hidden="true"></i> 
     </a> 
     </li> 
     <li> 
     <a class="search"><i class="fa fa-search fa-2x" aria-hidden="true"></i></a> 
     </li> 
    </ul> 

mein sass:

ul { 
    list-style-type: none; 
    li { 
    padding: 10px; 
    border-top: 1px solid blue; 
    &:first-child { 
     border: none; 
    } 
    i { 
     color: black; 
     &:hover { 
     color: white; 
     background-color: blue; 
     } 
    } 
    &:hover { 
     background-color: blue; 
     color: white; 
    } 
     &:active { 
     background-color: yellow; 
     color: black; 
    } 
     &:focus { 
     background-color: red; 
     color: white; 
    } 
    } 
} 

mein css:

ul { 
    list-style-type: none; 
} 
ul li { 
    padding: 10px; 
    border-top: 1px solid blue; 
} 
ul li:first-child { 
    border: none; 
} 
ul li i { 
    color: black; 
} 
ul li i:hover { 
    color: white; 
    background-color: blue; 
} 
ul li:hover { 
    background-color: blue; 
    color: white; 
} 
ul li:active { 
    background-color: yellow; 
    color: black; 
} 
ul li:focus { 
    background-color: red; 
    color: white; 
} 
+1

* "wenn es aktiv ist" * - * definieren aktiv *.? –

Antwort

2

Ihre SCSS

li { 
    // active pseudo on li 
    &:active { 
    i { color: #your-active-color; } 
    } 

    a { 
    // active pseudo on a link 
    &.active { 
     i { color: #your-active-color; } 
    } 
    } 

} 

jQuery -

$(document).ready(function() { 
    $('li a').on('click', function() { 
    $('li a').removeClass('active'); 
    $(this).addClass('active'); 
    }); 
}); 
+0

hallo danke für deine hilfe aber immer noch nicht das ist mein jsfiddle: https://jsfiddle.net/oosa8yzk/ – Raduken

+0

Hi @Raduken, ja es ist. Halten Sie lange auf dem Link und Sie können sehen, dass es rot wird. Das ist das richtige Verhalten für eine aktive Pseudo. http://www.w3schools.com/cssref/sel_active.asp – Mark

+0

ja ich weiß, aber das Problem, dass Farbe sichtbar sein muss, zum Beispiel: wie nach dem Klick sollte die Farbe weiter sichtbar für den Benutzer verstehen? wie wenn geöffnet: Farbe rot, wenn nicht Farbe blau – Raduken

3

können Sie den folgenden Code verwenden

.fa:active{ 
color: #your-active-color; 
} 
+1

danke, aber die Farben müssen Nach dem Klick erscheint sofort, wenn ich auf klicke und nachher losgehe. – Raduken

1

Sie können eine benutzerdefinierte Klasse in Ihrem html wie folgt hinzu:

<ul> 
    <li> 
    <a class="menu" data-toggle="tooltip" data-placement="bottom" title="home"> 
     <i class="fa fa-bars fa-2x color" aria-hidden="true"></i> 
    </a> 
    </li> 
    <li> 
    <a class="search"><i class="fa fa-search fa-2x color" aria-hidden="true"></i></a> 
    </li> 
</ul> 

Und dann fügen Sie in Ihrem CSS eine Eigenschaft im aktiven Ereignisse:

.color:active { 
    color:red; 
} 
Verwandte Themen