0

I want to be able to keep some items in my navigation bar while being able to have a collapse toggle when the window gets to small on the right.

EX: LOGO item item item Sign In Sign Up

Collapsed: LOGO Sign In Sign Up =

What's happening: LOGO = Sign In Sign Up

<nav class="navbar navbar-expand-xl" style="background-color: black">
      <a href="#" class="navbar-brand"><img src="logo.png" width="300" height="60"></a>
      <button class="navbar-toggler navbar-dark" 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="navbar-nav navbar-nav-left-side collapse navbar-collapse" id="navbarNavAltMarkup">
        <li><a class="nav-item nav-link" href="#">Features</a></li>
        <li><a class="nav-item nav-link" href="#">Pricing</a></li>
        <li><a class="nav-item nav-link" href="#">Pricing</a></li>
        <li><a class="nav-item nav-link" href="#">Pricing</a></li>
        <li><a class="nav-item nav-link" href="#">Pricing</a></li>
        <li><a class="nav-item nav-link" href="#">Pricing</a></li>
      </div>

      <div class="navbar-nav ml-auto navbar-nav-right-side">
        <li><a class="nav-item nav-link" href="#">Log In</a></li>
        <li><a class="nav-item nav-link" href="#">Sign Up</a></li>
      </div>
    </nav>

2 Answers 2

2

Use the responsive ordering classes as explained here.

<nav class="navbar navbar-expand-xl" style="background-color: black">
    <a href="#" class="navbar-brand"><img src="//placehold.it/300x60" width="300" height="60"></a>
    <button class="navbar-toggler navbar-dark order-2 order-xl-0" 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="navbar-nav navbar-nav-left-side collapse navbar-collapse order-3" id="navbarNavAltMarkup">
        <li><a class="nav-item nav-link" href="#">Features</a></li>
        <li><a class="nav-item nav-link" href="#">Pricing</a></li>
        <li><a class="nav-item nav-link" href="#">Pricing</a></li>
        <li><a class="nav-item nav-link" href="#">Pricing</a></li>
        <li><a class="nav-item nav-link" href="#">Pricing</a></li>
        <li><a class="nav-item nav-link" href="#">Pricing</a></li>
    </div>
    <div class="navbar-nav ml-auto navbar-nav-right-side order-xl-0 order-1">
        <li><a class="nav-item nav-link" href="#">Log In</a></li>
        <li><a class="nav-item nav-link" href="#">Sign Up</a></li>
    </div>
</nav>

https://www.codeply.com/go/Ag7B1WZmDU

0
0

The best solution is to rearrange your layout. Use the navbar-toggler button at the end.

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">


<nav class="navbar navbar-expand-xl" style="background-color: black">
  <a href="#" class="navbar-brand"><img src="logo.png" width="300" height="60"></a>

  <div class="navbar-nav navbar-nav-left-side collapse navbar-collapse" id="navbarNavAltMarkup">
    <li><a class="nav-item nav-link" href="#">Features</a></li>
    <li><a class="nav-item nav-link" href="#">Pricing</a></li>
    <li><a class="nav-item nav-link" href="#">Pricing</a></li>
    <li><a class="nav-item nav-link" href="#">Pricing</a></li>
    <li><a class="nav-item nav-link" href="#">Pricing</a></li>
    <li><a class="nav-item nav-link" href="#">Pricing</a></li>
  </div>

  <div class="navbar-nav ml-auto navbar-nav-right-side">
    <li><a class="nav-item nav-link" href="#">Log In</a></li>
    <li><a class="nav-item nav-link" href="#">Sign Up</a></li>
  </div>
  <button class="navbar-toggler navbar-dark " 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>
</nav>


Alternatively you can use just order-last class on the navbar-toggler to rest the order of it. It applies order: -1. Normally you need to use more order-* classes, but since the navbar-toggler is not displayed on large screen you do not need to do so.

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">


<nav class="navbar navbar-expand-xl" style="background-color: black">
  <a href="#" class="navbar-brand"><img src="logo.png" width="300" height="60"></a>
  <button class="navbar-toggler navbar-dark order-last" 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="navbar-nav navbar-nav-left-side collapse navbar-collapse" id="navbarNavAltMarkup">
    <li><a class="nav-item nav-link" href="#">Features</a></li>
    <li><a class="nav-item nav-link" href="#">Pricing</a></li>
    <li><a class="nav-item nav-link" href="#">Pricing</a></li>
    <li><a class="nav-item nav-link" href="#">Pricing</a></li>
    <li><a class="nav-item nav-link" href="#">Pricing</a></li>
    <li><a class="nav-item nav-link" href="#">Pricing</a></li>
  </div>

  <div class="navbar-nav ml-auto navbar-nav-right-side">
    <li><a class="nav-item nav-link" href="#">Log In</a></li>
    <li><a class="nav-item nav-link" href="#">Sign Up</a></li>
  </div>
</nav>

Not the answer you're looking for? Browse other questions tagged or ask your own question.