更新日: 2018 / 10 / 17

Bootstrap4 Navbarの使い方とカスタマイズサンプル

カテゴリー: コーディング

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

オプション一覧

オプション名デフォルト説明
data-togglecollapseトグルボタンを定義
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>