ホームページ  >  記事  >  ウェブフロントエンド  >  デフォルトの背景色を使用せずにブートストラップ CSS でアクティブなナビゲーション状態を維持するにはどうすればよいですか?

デフォルトの背景色を使用せずにブートストラップ CSS でアクティブなナビゲーション状態を維持するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-27 00:43:02378ブラウズ

How to Maintain Active Navigation State in Bootstrap CSS Without Default Background Colors?

Bootstrap CSS: アクティブ ナビゲーションの維持

Bootstrap は、ユーザーが Web サイトのさまざまなセクションを簡単に移動できるようにするナビゲーション システムを提供します。ただし、デフォルトの背景色を使用せずにメニューをカスタマイズしたい場合があります。このような場合、メニュー項目をスクロールまたはクリックするときにアクティブなナビゲーション状態を維持するために追加のロジックを実装する必要がある場合があります。

次のシナリオを考えてみましょう。カスタム メニューが、HTML と CSS を使用して作成されています。 Bootstrap Web サイトのサブナビゲーション メニュー。ただし、下にスクロールしたり、メニュー項目をクリックしても、アクティブなクラスは切り替わりません。

HTML:

<code class="html"><ul class="menu">
    <li><a href="#" aria-current="page">Home</a></li>
    <li><a href="#about">About Us</a></li>
    <li><a href="#contact">Contact</a></li>
</ul></code>

CSS:

<code class="css">.menu {
  list-style:none;
}
.menu > li {
  float: left;
}
.menu > li > a {
  color: #555;
  float: none;
  padding: 10px 16px 11px;
  display: block;
}
.menu > li > a:hover {
  color: #F95700;
}
.menu a[aria-current="page"],
.menu a[aria-current="page"]:hover {
  color:#F95700;
}</code>

この問題を解決するには、追加の JavaScript が必要です。次の jQuery コードは、現在の項目に追加する前に、すべてのメニュー項目からアクティブ クラスをクリアします。

JavaScript:

<code class="js">$('.navbar li').click(function(e) {
    $('.navbar li.active').removeClass('active');
    var $this = $(this);
    if (!$this.hasClass('active')) {
        $this.addClass('active');
    }
    e.preventDefault();
});</code>

このコードを組み込むことにより、アクティブなクラスがメニュー内を移動するときにクラスが正しく切り替わるようになりました。このソリューションにより、望ましい視覚的な動作を維持するカスタマイズされたナビゲーション システムが可能になります。

以上がデフォルトの背景色を使用せずにブートストラップ CSS でアクティブなナビゲーション状態を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。