Bootstrap4のNavbar(ナビゲーションバー)コンポーネントの使い方を解説。

Webサイトのヘッダーとしてよく使われるNavbarコンポーネント。レスポンシブに対応しており、スマホではドロップダウンメニューに変わってくれます。

ここではNavbarの基本的な使い方と、サンプルコードをいくつか集めてみました。

Bootstrap4 Navbar(ナビゲーションバー)の基本的な使い方

Navbarはロゴを入れたり、水平なメニューコンテンツを入れることがほとんどで、ヘッダーとして使われることが多いコンポーネントです。

また、スマートフォンではメニューがドロップダウンで表示されるため、レスポンシブに対応したヘッダを簡単に作成できるのもポイント。

基本的には、ロゴと.collapse部分に入れるナビゲーションコンテンツで作ります。

.collapseに入れたコンテンツはスマートフォンでは非表示になり、ボタンで開閉することになります。

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-sample">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbar-sample">
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" href="#">Home</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
    </ul>
  </div>
</nav>

NavbarはCSSコンポーネントなので独自のオプションはありませんが、Navbar用にに最適化されたコンポーネントがあります。

Class一覧

Class名 説明
.navbar navbarを定義
.navbar.navbar-expand-xx Navbarの開閉をどのポイントで行うかを定義、sm〜xlまである
.navbar.navbar-light 明るい背景用スタイル
.navbar.navbar-dark 暗い背景用スタイル
.navbar.fixed-top 画面上部に固定する
.navbar.fixed-bottom 画面下部に固定する
.navbar.sticky-top 画面上部に張り付く
.navbar-brand Navbarに設置するロゴ
.navbar-toggler スマホでNavbarメニューを開いたり閉じたりするボタン
.collapse.navbar-collapse Navbarのコンテンツ部分を.navbar-expand-xxと連携して非表示にする
.navbar-nav Navbar用に最適化された.nav
.navbar-text Navbarに配置するテキスト

オプション一覧

オプション名 デフォルト 説明
data-toggle collapse トグルボタンを定義
data-target #id ボタンで開閉するコンテンツをidで指定

Navbarのカスタマイズといってもヘッダーとして使うことがほとんどなので、基本構造は変更せずCSSスタイルの修正がメインです。

サンプルのデモページを見る

Navbarのトグルボタンをカスタマイズ

トグルボタンはアイコンなので自由に変更可能。枠線もCSSスタイルで修正すればすっきりした見た目に。

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar w/ text</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
    <i class="material-icons">dehaze</i>
  </button>
  <div class="collapse navbar-collapse" id="navbarText">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Features</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Pricing</a>
      </li>
    </ul>
    <span class="navbar-text">
      Navbar text with an inline element
    </span>
  </div>
</nav>