0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Bootstrap4で画面幅が小さくなってもNavbarの一部を右寄せする

Posted at

ここでは例として"Username"という要素を右寄せします。

右寄せにするだけならmr-autoクラスなどを使えばできます。
こちらの記事を参照。(https://qiita.com/hmmrjn/items/6f5fd65ab8c58cd7a6d6)

スクリーンショット 2019-10-24 11.24.04.png

この場合、画面幅を小さくしてトグルボタンを拡げたとき"Username"要素もその中に入ります。

スクリーンショット 2019-10-24 12.56.30.png

これはこれで良いですが、画面幅が小さい時でも要素を右寄せにしたままにしたい場合もあるかとおもいます。

こんな感じで↓
スクリーンショット 2019-10-24 11.24.25.png
拡げたとき↓
スクリーンショット 2019-10-24 11.24.52.png

そのやり方の紹介。

画面幅が小さくても右寄せ

ポイントは要素の順番で、navタグの中で

トグルボタン -> ロゴ -> 右寄せにしたい要素 -> collapse navbar-collapseクラスで囲まれた要素

の順で記述することです。

そして右寄せにしたい要素にorder-lg-lastクラスを追加すればOKです。

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <div class="container">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <a class="navbar-brand" href="#">Navbar</a>

    <div class="navbar-nav order-lg-last">
      <a class="nav-link" href="#">Username</a>
    </div>

    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav">
        <li class="nav-item active">
          <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></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="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Dropdown
          </a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
            <a class="dropdown-item" href="#">Action</a>
            <a class="dropdown-item" href="#">Another action</a>
            <div class="dropdown-divider"></div>
            <a class="dropdown-item" href="#">Something else here</a>
          </div>
        </li>
        <li class="nav-item">
          <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

要素が複数の場合

ちなみに右寄せにしたい要素が複数の場合、flex-rowクラスを追加します。(要素が多すぎると表示が崩れます)

navbar-navクラスのリストを使わない場合はd-flexも必要かも。

Dropdownの場合

また右寄せにしたい要素がDropdownの場合、以下のように表示が崩れてしまいました。

スクリーンショット 2019-10-24 12.23.47.png

dropdown-menuクラスのある要素にposition-absoluteクラスを追加すると直ります。

右寄せしたい要素がDropdownを使っていて複数の場合のコード例(一部)

<ul class="navbar-nav order-lg-last flex-row">
  <li class="nav-item mr-2">
    <a class="nav-link" href="#">Settings</a>
  </li>
  <li class="nav-item dropdown">
    <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
      Username
    </a>
    <div class="dropdown-menu dropdown-menu-right position-absolute" aria-labelledby="navbarDropdown">
      <a class="dropdown-item" href="#">Action</a>
      <a class="dropdown-item" href="#">Another action</a>
      <div class="dropdown-divider"></div>
      <a class="dropdown-item" href="#">Something else here</a>
    </div>
  </li>
</ul>

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?