はじめに
Bootstrap 3を試してみるシリーズの第5弾は、ウエブなどでもお馴染みのTogglable Tabs(タブ)を試してみます。
2013年12月28日 18時42分
Bootstrap 3を試してみるシリーズの第5弾は、ウエブなどでもお馴染みのTogglable Tabs(タブ)を試してみます。
作業の前提条件は、下記のとおりです。
ソフトウエア | バージョン |
---|---|
OS | Windows 7 Ultimate 32bit |
Cygwin | Setup Version 2.831 |
お約束のbootstrap.min.[cs,js] + jquery-1.10.2.min.jsを指定して、HTMLを作成します。
Tabsの定義には、以下のクラスを使用します。
クラス | 概要 |
---|---|
nav-tabs | タブとして表示する項目を、ul(Unnumbered List)要素で定義します。 |
tab-content | nav-tabsで定義したタブに対応するコンテンツを定義します。 |
基本的なコードは、下記のようになります。
<ul class="nav nav-tabs"> <li><a href="#home1" data-toggle="tab">Home</a></li> <li><a href="#prof1" data-toggle="tab">プロフィール</a></li> <li><a href="#msgs1" data-toggle="tab">メッセージ</a></li> <li><a href="#sets1" data-toggle="tab">設定</a></li> </ul><!-- nav-tabs --> <div class="tab-content"> <div class="tab-pane active" id="home1">ホームです。</div> <div class="tab-pane" id="prof1">プロフィールを記載します。</div> <div class="tab-pane" id="msgs1">メッセージを記載します。</div> <div class="tab-pane" id="sets1">設定を記載します。</div> </div><!-- tab-content -->
上記の例に、タブ切り替え時の表示にフェード効果を加えることもできます。
tab-contentの各項目にfadeを追加するだけですが、コンテンツをactiveにしたい場合、inも一緒に指定します。
<ul class="nav nav-tabs"> <li><a href="#home2" data-toggle="tab">Home</a></li> <li><a href="#prof2" data-toggle="tab">プロフィール</a></li> <li><a href="#msgs2" data-toggle="tab">メッセージ</a></li> <li><a href="#sets2" data-toggle="tab">設定</a></li> </ul><!-- nav-tabs --> <div class="tab-content"> <div class="tab-pane fade in active" id="home2">ホームです。</div> <div class="tab-pane fade" id="prof2">プロフィールを記載します。</div> <div class="tab-pane fade" id="msgs2">メッセージを記載します。</div> <div class="tab-pane fade" id="sets2">設定を記載します。</div> </div><!-- tab-content -->
タブの一部をドロップダウンメニューとして、定義することもできます。
nav-tabsで定義するリスト項目を、ドロップダウンメニューに置き換えるだけで実現できます。
<ul class="nav nav-tabs"> <li><a href="#home3" data-toggle="tab">Home</a></li> <li><a href="#prof3" data-toggle="tab">プロフィール</a></li> <li><a href="#msgs3" data-toggle="tab">メッセージ</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">設定 <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="#sets3" data-toggle="tab">項目1</a></li> <li><a href="#sets4" data-toggle="tab">項目2</a></li> </ul> </li> </ul><!-- nav-tabs --> <div class="tab-content"> <div class="tab-pane active" id="home3">ホームです。</div> <div class="tab-pane" id="prof3">プロフィールを記載します。</div> <div class="tab-pane" id="msgs3">メッセージを記載します。</div> <div class="tab-pane" id="sets3">項目1を記載します。</div> <div class="tab-pane" id="sets4">項目2を記載します。</div> </div><!-- tab-content -->
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <!--[if IE]> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <![endif]--> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>027</title> <link href="bootstrap.min.css" rel="stylesheet"> <style> .tab-pane { min-height: 50px; padding: 5px; } .tab-pane#home1, .tab-pane#home2, .tab-pane#home3 { background: #ddded3; } .tab-pane#prof1, .tab-pane#prof2, .tab-pane#prof3 { background: #d1b6b0; } .tab-pane#msgs1, .tab-pane#msgs2, .tab-pane#msgs3 { background: #bcc8db; } .tab-pane#sets1, .tab-pane#sets2 { background: #c3dcb8; } .tab-pane#sets3 { background: #edd634; } .tab-pane#sets4 { background: #e0c184; } </style> </head> <body> <header class="navbar navbar-static-top bs-docs-nav" id="top" role="banner"> </header> <div class="container"> <div class="row"> <div class="col-xs-3 col-sm-3 col-md-3"> </div><!-- col-3 --> <!-- メインコンテンツ --> <div class="col-xs-6 col-sm-6 col-md-6"> <div class="container-fluid"> <h4>Basic</h4> <ul class="nav nav-tabs"> <li><a href="#home1" data-toggle="tab">Home</a></li> <li><a href="#prof1" data-toggle="tab">プロフィール</a></li> <li><a href="#msgs1" data-toggle="tab">メッセージ</a></li> <li><a href="#sets1" data-toggle="tab">設定</a></li> </ul><!-- nav-tabs --> <div class="tab-content"> <div class="tab-pane active" id="home1">ホームです。</div> <div class="tab-pane" id="prof1">プロフィールを記載します。</div> <div class="tab-pane" id="msgs1">メッセージを記載します。</div> <div class="tab-pane" id="sets1">設定を記載します。</div> </div><!-- tab-content --> <h4>Fade</h4> <ul class="nav nav-tabs"> <li><a href="#home2" data-toggle="tab">Home</a></li> <li><a href="#prof2" data-toggle="tab">プロフィール</a></li> <li><a href="#msgs2" data-toggle="tab">メッセージ</a></li> <li><a href="#sets2" data-toggle="tab">設定</a></li> </ul><!-- nav-tabs --> <div class="tab-content"> <div class="tab-pane fade in active" id="home2">ホームです。</div> <div class="tab-pane fade" id="prof2">プロフィールを記載します。</div> <div class="tab-pane fade" id="msgs2">メッセージを記載します。</div> <div class="tab-pane fade" id="sets2">設定を記載します。</div> </div><!-- tab-content --> <h4>Basic with Dropdown</h4> <ul class="nav nav-tabs"> <li><a href="#home3" data-toggle="tab">Home</a></li> <li><a href="#prof3" data-toggle="tab">プロフィール</a></li> <li><a href="#msgs3" data-toggle="tab">メッセージ</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">設定 <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="#sets3" data-toggle="tab">項目1</a></li> <li><a href="#sets4" data-toggle="tab">項目2</a></li> </ul> </li> </ul><!-- nav-tabs --> <div class="tab-content"> <div class="tab-pane active" id="home3">ホームです。</div> <div class="tab-pane" id="prof3">プロフィールを記載します。</div> <div class="tab-pane" id="msgs3">メッセージを記載します。</div> <div class="tab-pane" id="sets3">項目1を記載します。</div> <div class="tab-pane" id="sets4">項目2を記載します。</div> </div><!-- tab-content --> </div><!-- container-fluid --> </div><!-- col-6 --> <div class="col-xs-3 col-sm-3 col-md-3"> </div><!-- col-3 --> </div><!-- row --> </div><!-- container --> <script src="jquery-1.10.2.min.js"></script> <script src="bootstrap.min.js"></script> </body> </html>