LoginSignup
12
12

More than 5 years have passed since last update.

【Bootstrap4】ナビゲーションバー(navbar)のメニューを全幅に均等表示する方法

Last updated at Posted at 2018-05-09

Bootstrap4にて、Navbarを均等に表示したい!

結論から言うと、ナビゲーションメニューの要素を囲っている親タグに、w-100 nav-justifiedというクラスを書き加えてあげるだけでOKです!
今回の例で言うと、
<a class="navbar-nav w-100 nav-justified">
という記載をしてあげればオッケーです。

通常のNavbarの書きかた

まずは通常のNavbarの記載方法です。このようなNavbarを作ることができます。
 2018-05-10 7.30.05.png

navbar_basic.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>

    <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="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
        <div class="navbar-nav">
          <a class="nav-item nav-link active" href="#">Home <span class="sr-only">(current)</span></a>
          <a class="nav-item nav-link" href="#">Features</a>
          <a class="nav-item nav-link" href="#">Pricing</a>
          <a class="nav-item nav-link disabled" href="#">Disabled</a>
        </div>
      </div>
    </nav>

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
</body>
</html>

全幅均等表示するNavbarの書きかた

先程も書いたとおり、class="navbar-nav"の記載がある場所に、w-100 nav-justifiedというクラスを書き加えてあげるだけです!

すると・・・以下のようになります!!

 2018-05-10 7.36.01.png

navbar_justified.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css">
</head>
<body>

    <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="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
       <!--↓今回書き加えたのはここだけ!↓-->
        <div class="navbar-nav w-100 nav-justified">
          <a class="nav-item nav-link active" href="#">Home <span class="sr-only">(current)</span></a>
          <a class="nav-item nav-link" href="#">Features</a>
          <a class="nav-item nav-link" href="#">Pricing</a>
          <a class="nav-item nav-link disabled" href="#">Disabled</a>
        </div>
      </div>
    </nav>

<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script>
</body>
</html>

場合によっては、ナブバーのメニューがaタグじゃなくてul,liタグなこともあります。そんなときも、ナビゲーションメニューの要素を囲っているタグ(この場合liタグ)の親タグ(ulタグ)にクラスをくけ加えてあげればOKです!

navbar_ul_li.html

<nav class="navbar navbar-expand-lg">
            <!-- ロゴ -->
            <a class="navbar-brand">hogehoge</a>
            <!-- スマホ用ナブバー展開ボタン -->
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#tampopoNavbar" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <!-- navbarの要素 -->
            <div class="collapse navbar-collapse" id="tampopoNavbar">
                <ul class="navbar-nav nav-fill w-100 nav-justified">
                    <!-- ドロップダウンしないナブバーメニュー -->
                    <li class="nav-item"><a href="" class="nav-link ">メニュー1</a></li>
                    <li class="nav-item"><a href="" class="nav-link">メニュー2</a></li>
                    <li class="nav-item"><a href="" class="nav-link">メニュー3</a></li>
                    <li class="nav-item"><a href="" class="nav-link">メニュー3</a></li>
                    <li class="nav-item"><a href="" class="nav-link">メニュー3</a></li>
                    <!-- ドロップダウンする -->
                    <li class="nav-item dropdown">
                        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown link</a>
                        <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                            <a class="dropdown-item" href="#">Action</a>
                            <a class="dropdown-item" href="#">Another action</a>
                            <a class="dropdown-item" href="#">Something else here</a>
                        </div>
                    </li>
                </ul>
            </div>
        </nav>

ちなみに、w-100とは、

hogehoge.css

width: 100%;

と同義です。また、navbar-lightというクラスは、navbarのリンク要素を青地にするのを防ぐ効果があります。

現場からは以上です。

2018/05/11追記:
上のnavbar_ul_li.htmlのnavbarのul要素内クラスがnavと誤って記述されていました。正しくはnavbar-navです。
ナブバーのリンク部分が青くなっていて、navbar-lightを使用しても色が変わらないので変だな・・・と思って調べたらこのような誤りだったっぽいです。すみませんでした。

参考サイト

今回は、こちらを参考にしました。

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12