Bootstrap によるレスポンシブ Web デザイン
ナビバーを配置する
次はナビバーを設置します.これも Bootstrap のページからコードをコピーして適当なところに貼り付けるだけです.通常は <body><div class="container"><header>
,または <body><header class="container">
の直後に配置すると良いでしょう.メニューの要素は <ul>
と <li>
からなる箇条書きの構造になっているので,メニューの文字列やリンク先を自由に変更できることでしょう.(サンプル(1)を見る)(サンプル(2)を見る)
index.html(抜粋)
<nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Dropdown
</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link disabled" aria-disabled="true">Disabled</a>
</li>
</ul>
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
</div>
</div>
</nav>
ブラウザでの表示結果
また画面の幅が変わればメニューがハンバーガーボタンに変化することも確認してください.
なお,サンプル(1) は次のコードのとおり <body>
要素の中に1個だけ <div>
を配置し,その中にナビゲーションメニューと本文を配置しています.この結果,常にナビゲーションメニューの幅は本文の幅と一致します.
index.html(サンプル(1) 抜粋)
<body>
<div class="container-sm">
<header>
<nav class="navbar navbar-expand-lg bg-body-tertiary">
<!-- ナビゲーションメニュー (省略) -->
</nav>
</header>
<main>
<h1>Bootstrapのサンプル</h1>
<p>
レイアウトを確認するための本文です.
</p>
</main>
</div>
<script>(省略)</script>
</body>
一方で,サンプル(2) は <body>
要素の直接の子要素として <header>
要素と <main>
要素を配置しています.ヘッダー領域は画面の横幅全体を使うように設定しています.この結果,画面の幅が広くなったときに本文の左右に余白が作られて読みやすくなりますが,ナビゲーションメニューは画面の幅全部に表示されるようになります.
index.html(サンプル(2) 抜粋)
<body>
<header class="container-fluid">
<nav class="navbar navbar-expand-lg bg-body-tertiary">
<!-- ナビゲーションメニュー (省略) -->
</nav>
</header>
<main class="container-md">
<h1>Bootstrapのサンプル</h1>
<p>
レイアウトを確認するための本文です.
</p>
</main>
<script>(省略)</script>
</body>