「Bootstrap ComponentsのNavbar」のサンプル

BootstrapのComponentsのサンプル:和訳」の「Navbar」のサンプルページです。

ウィンドウ幅にあわせて適当にやってくれるレスポンシブなナビバー(このページのウィンドウ幅を広げたり狭めたりすると確認できます。)

一部、BootstrapのJavascriptが必要。

  • 「.navbar」で囲む。

基本

「class="nav"」を「class="navbar navbar-default"」にする。

実際のソース

<nav class="navbar navbar-default">
  <div class="container-fluid">
    
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>
    
    <div class="navbar-collapse collapse" id="bs-example-navbar-collapse-1" aria-expanded="false" style="height: 1px;">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      <form class="navbar-form navbar-left" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
      </form>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
    </div>
    
  </div>
</nav>
  • 「class="navbar navbar-default"」で囲む。
  • 幅を親の幅100%にするために子の要素を「.container-fluid」にする。
  • さらにその子には「.navbar-header」と「.navbar-collapse」をいれる。
    • 「.navbar-header」の部分が「Brand」
    • 「.navbar-collapse」が他のリンクやドロップダウン、テキストフィールなど
  • 「.navbar-header」について。
    • buttonタグのほうはウィンドウ幅が狭いときに表示され、メニューを開くボタン。
      「.icon-bar」を3つ使って3本バーの「(ハンバーガーアイコン(?))」にしている。
      「<span class="glyphicon glyphicon-menu-hamburger"></span>」を一つで表現せずに「.icon-bar」を3つにしている理由は不明。未調査。
    • aタグのほうはウィンドウ幅にかかわらず表示。
      ツールバーの名前だったり、サイト名だったり、そういったものを記載すればよさげな感じ。
      画像やアイコンに変更してもOK。
  • 「.navbar-collapse」について。
    • ただのリンクたちは「class="nav navbar-nav"」で囲む
      ※「class="nav navbar-nav"」は「Navs」の項目で触れていない。触れていないくせに当たり前のごとく使うのは・・・PC関連に携わっている人たちのよくある感じ悪いやり方・・・
    • form部は「class="navbar-form navbar-left"」で囲む。
      ※「navbar-left」もいきなり出てきてるけど・・・左配置。「navbar-right」が右配置

フォーム

「.navbar-form」を使う

実際のソース

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-2" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>
    
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-2">
      <form class="navbar-form navbar-left" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search">
        </div>
      <button type="submit" class="btn btn-default">Submit</button>
    </form>
    </div>
  </div>
</nav>

ボタン

ボタンタグに「.navbar-btn」を追加、formタグにはいれない。
aタグやinputタグでも使える。でもaタグは「.navbar-btn」じゃなくて「class="nav navbar-nav"」内で使うべきだそうだ。

実際のソース

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-3" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>
    
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-3">
      <button type="button" class="btn btn-default navbar-btn">Sign in</button>
    </div>
  </div>
</nav>

テキスト

「.navbar-text」を使う
※「style="margin-top:15px"」は不要です(このサイトで使っているCSSでこの要素のmargin-topを上書きしているので、さらに上書きしなおすため用です)

実際のソース

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-4" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>
    
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-4">
      <p class="navbar-text" style="margin-top:15px">Signed in as Mark Otto</p>
    </div>
  </div>
</nav>

ナビゲーションじゃないリンク

「ナビゲーションを表示させない利用者用のリンクをつけましょう」という感じらしい
※「style="margin-top:15px"」は不要です(このサイトで使っているCSSでこの要素のmargin-topを上書きしているので、さらに上書きしなおすため用です)

実際のソース

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-5" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>
    
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-5">
      <p class="navbar-text navbar-right" style="margin-top:15px">Signed in as <a href="#" class="navbar-link">Mark Otto</a></p>
    </div>
  </div>
</nav>

ページの上部に固定する

「class="navbar navbar-default"」を「class="navbar navbar-default navbar-fixed-top"」にする
ナビゲーションでボディ部の一部が消えてしまうらしく「body { padding-top: 70px; }」を追加したほうがいいそうだ。

実際のソース

<nav class="navbar navbar-default navbar-fixed-top">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-6" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>
    
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-6">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Home</a></li>
        <li><a href="#">Link</a></li>
        <li><a href="#">Link</a></li>
      </ul>
    </div>
  </div>
</nav>

※このページの上部に固定して表示されてしまうので、サンプルは無しです

ページの下部に固定する

「.navbar-fixed-top」を「.navbar-fixed-bottom」にする
ナビゲーションでボディ部の一部が消えてしまうらしく「body { padding-bottom: 70px; }」を追加したほうがいいそうだ。

Static top

「class="navbar navbar-default"」を「class="navbar navbar-default navbar-static-top"」にする
※「.navbar-static-top」を追加することによって何が変わったのかが分からない・・・未調査

実際のソース

<nav class="navbar navbar-default navbar-static-top">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-6" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>
    
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-6">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Home</a></li>
        <li><a href="#">Link</a></li>
        <li><a href="#">Link</a></li>
      </ul>
    </div>
  </div>
</nav>

Inverted navbar(色反転?)

「class="navbar navbar-default"」を「class="navbar navbar-inverse"」にする
※色が反転してるだけ?

実際のソース

<nav class="navbar navbar-inverse">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-9" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand</a>
    </div>
    
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-9">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Home</a></li>
        <li><a href="#">Link</a></li>
        <li><a href="#">Link</a></li>
      </ul>
    </div>
  </div>
</nav>

関連ページ