2017-11-02 25 views
0

私はこの質問が何度か尋ねられていることを認識していますが、解決策のどれも私のために働いていません。ここに私のHTMLは次のとおりです。アクティブなナビゲーションバーのリンクを背景色に変更するにはどうすればよいですか?ブートストラップ4.

<div class="navbar-light" style="position: sticky; top: 0px; background: #fff0d8; z-index:99;"> <!--z-index to stay on top of everything else--> 
<div class="container"> 
<ul class="sc-nav nav navbar-nav nav-fill w-100 flex-md-row"> 
<li class="nav-item"> 
    <a class="nav-link" href="#">oihdma</a> 
</li> 
<li class="nav-item"> 
    <a class="nav-link" href="#">saaaassas</a> 
</li> 
<li class="nav-item"> 
    <a class="nav-link" href="#">fffffffffffff</a> 
</li> 
<li class="nav-item"> 
    <a class="nav-link" href="#">dsdsd</a> 
</li> 
<li class="nav-item"> 
    <a class="nav-link" href="#">fsfsfsfs</a> 
</li> 
<li class="nav-item"> 
    <a class="nav-link" href="#">fffff</a> 
</li> 
<li class="nav-item"> 
    <a class="nav-link" href="#">xxxxx</a> 
</li> 
</ul> 

そして、私のスクリプト:

$(document).ready(function() { 
    var url = this.location.pathname; 
    var filename = url.substring(url.lastIndexOf('/')+1); 
    $('a[href="' + filename + '"]').parent().addClass('active'); 
}); 

それはページのロード後に実行されるように、私はページのフッターにこのスクリプトを残しました。

最後に、私のCSS:

ul.nav a:hover, ul.nav a:focus, ul.nav a:active { background-color: #FDCBA3;} 

ホバーと意図したとおりに作業を集中しますが、アクティブではありません。スクリプトによってリンクがアクティブになり、テキストの色が変わり、正常に動作します。しかし、背景色は変化しません。ホバリング時とフォーカス時に変化しますが、クリックした場合は変化しません。

+0

あなたのjqueryがアクティブなクラスを追加した場合、あなたのCSSもそれを含むべきではありませんか? –

+1

[JsFiddle](https://jsfiddle.net/us3L90fs/)でこれをテストしたところ、うまくいくはずです。変更なしでJsFiddleで動作しました – jsrbn

答えて

0

:active疑似クラスは、あなたのJavaScriptで設定している.activeクラスとは異なります。

は、以下のことを試してみてください。

ul.nav a:hover, ul.nav a:focus, ul.nav a.active { background-color: #FDCBA3;} 
+0

うーん...残念なことに変更はありません。 – bogdan

0

私はFirefoxで能動素子を検査し、私が間違ってCSSを変えたことに気づきました。これはうまくいきました:

ul.nav a:hover, ul.nav a:focus, .active { background-color: #FDCBA3;} 
関連する問題