コンポーネント(9): ナビゲーション
ul
ベースの場合ul.nav
li.nav-item
a.nav-link
属性
href="..."
.active
を追加.disabled
を追加例(要素境界表示用にボーダーを追加、デフォルトはボーダーなし)
nav
ベースの場合(一層少なく作成できる)Flexboxユーティリティを用いる。
.justify-content-(start|center|end)
を用いる。
.justify-content-start
(デフォルト)
.justify-content-center
.justify-content-end
.nav.flex-column
を用いる。
ul
ベースで作成: ul.nav.flex-column
nav
ベースで作成: nav.nav.flex-column
.nav-tabs
を設定
ul
ベースで作成: ul.nav.nav-tabs
nav
ベースの場合は1つ注意: 単に nav.nav.nav-tabs
ではActiveアイテムの下に余計な線が付く(失敗例)
リンクアイテムに.nav-item
を追加して解決できる ⇒ a.nav-item.nav-link
.nav-pills
を設定
ul
ベースで作成: ul.nav.nav-pills
nav.nav
ベースで作成: nav.nav.nav-pills
デフォルトのピル表示(比較用): 以下境界確認のため要素にボーダー表示(実際は付かない)
文字幅均等のフィル: ul
に .nav-fill
を追加 ⇒ ul.nav.nav-pills.nav-fill
nav
ベースの場合はアイテムに .nav-item
を追加 ⇒ a.nav-item.nav-link
等幅のフィル: .nav-justified
⇒ ul.nav.nav-pills.nav-justified
この場合も nav
ベースはアイテムに .nav-item
を追加 ⇒ a.nav-item.nav-link
タブ表示も同様: デフォルト表示(比較用)
タブ表示の文字幅均等フィル( ul
ベース)
タブ表示の文字幅均等フィル( nav
ベース)
タブ表示の等幅フィル( ul
ベース)
タブ表示の等幅フィル( nav
ベース)
Flexboxユーティリティを応用したレスポンシブレイアウト例。mdブレークポイント(768px)で横配置と縦配置を切り替える。
nav.nav.nav-pills
属性
.flex-column
.flex-md-row
a.nav-link
属性
.flex-md-fill
.text-md-center
アクセシビリティの観点からナビゲーションにはロール navigation
を設定する。しかし ul
ベースの場合はベース要素の ul
に role="navigation"
を設定できない(⇒ W3C仕様書 - ul要素 : navigation
は ul
の設定可能ロールではない)。
そこで ul
ベースのナビゲーションにはロールとして navigation
を設定可能な親要素を追加する。適切な要素として nav
(⇒ W3C仕様書 - nav要素 )を用いることができる。
nav
(または div
など)
+ロール属性 role="navigation"
ul.nav
一方 nav
ベースの場合は直接ロールを設定できる。
nav.nav
+ロール属性 role="navigation"
.nav-tabs
を使用する場合もロールは navigation
が正しい(名称から tab
, tablist
, tabpanel
等に設定するのはありがちな誤り)。span.sr-only
(⇒ スクリーンリーダ )を用いて (current)
などの説明テキストを設定する。ナビゲーションバーの例で実際に行っているので参照するとよい。アイテムとしてドロップダウンを用いることができる。
構造li.nav-item.dropdown
a.nav-link.dropdown-toggle
属性
href="..."
data-toggle="dropdown"
role="button"
aria-haspopup="true"
aria-expanded="false"
Dropdown
div.dropdown-menu
ベースが ul.nav.nav-tabs
の場合
ベースが ul.nav.nav-pills
の場合
ベースが nav.nav.nav-tabs
の場合
ベースが nav.nav.nav-pills
の場合
bootstrap.js
を利用してタブ選択で各アイテムに対応するコンテンツの表示ON/OFFを切り替えることができる(自分でコードは書かなくてよい)。次の通り設定する。まず ul
ベースの場合から示す。
ul.nav.nav-(tabs|pills)
属性
role="tablist"
(注: "navigation"
ではない)li.nav-item
a.nav-link
属性
.active
を追加id="タブID"
data-toggle="tab"
or "pill"
(どちらでも動作は同じ)href="#コンテントID"
role="tab"
aria-controls="コンテントID"
aria-selected="true"
(アクティブ時)または "false"
Home
div.tabcontent
div.tab-pane
属性
.fade
を追加.show.active
を追加id="コンテントID"
role="tabpanel"
aria-labelledby="タブID"
ul.nav.nav-tabs
Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.
Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.
Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.
ul.nav.nav-pills
Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.
Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.
Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.
次に nav
ベースの場合(トップレベルの構造の違いに注意)。
nav
+ div.nav.nav-tabs
nav
+ div.nav.nav-pills
最後はFlexboxの応用例: 縦配置ピルを左、コンテントを右に表示(詳しくはソース参照)
Cillum ad ut irure tempor velit nostrud occaecat ullamco aliqua anim Lorem sint. Veniam sint duis incididunt do esse magna mollit excepteur laborum qui. Id id reprehenderit sit est eu aliqua occaecat quis et velit excepteur laborum mollit dolore eiusmod. Ipsum dolor in occaecat commodo et voluptate minim reprehenderit mollit pariatur. Deserunt non laborum enim et cillum eu deserunt excepteur ea incididunt minim occaecat.
Culpa dolor voluptate do laboris laboris irure reprehenderit id incididunt duis pariatur mollit aute magna pariatur consectetur. Eu veniam duis non ut dolor deserunt commodo et minim in quis laboris ipsum velit id veniam. Quis ut consectetur adipisicing officia excepteur non sit. Ut et elit aliquip labore Lorem enim eu. Ullamco mollit occaecat dolore ipsum id officia mollit qui esse anim eiusmod do sint minim consectetur qui.
Fugiat id quis dolor culpa eiusmod anim velit excepteur proident dolor aute qui magna. Ad proident laboris ullamco esse anim Lorem Lorem veniam quis Lorem irure occaecat velit nostrud magna nulla. Velit et et proident Lorem do ea tempor officia dolor. Reprehenderit Lorem aliquip labore est magna commodo est ea veniam consectetur.
Eu dolore ea ullamco dolore Lorem id cupidatat excepteur reprehenderit consectetur elit id dolor proident in cupidatat officia. Voluptate excepteur commodo labore nisi cillum duis aliqua do. Aliqua amet qui mollit consectetur nulla mollit velit aliqua veniam nisi id do Lorem deserunt amet. Culpa ullamco sit adipisicing labore officia magna elit nisi in aute tempor commodo eiusmod.