Bootstrap 4 align navbar items to the right

后端 未结 21 2586
無奈伤痛
無奈伤痛 2020-11-21 06:14

How do I align a navbar item to right?

I want to have the login and register to the right. But everything I try does not seem to work.

This is wha

相关标签:
21条回答
  • 2020-11-21 07:05

    For bootstrap 4.3.1, I was using nav-pills and nothing worked for me except this:

        <ul class="nav nav-pills justify-content-end ml-auto">
        <li ....</li>
        </ul>
    
    0 讨论(0)
  • 2020-11-21 07:06

    use the flex-row-reverse class

    <nav class="navbar navbar-toggleable-md navbar-light">
        <div class="container">
            <button class="navbar-toggler navbar-toggler-right" 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>
            <a class="navbar-brand" href="#">
                <i class="fa fa-hospital-o fa-2x" aria-hidden="true"></i>
            </a>
            <div class="collapse navbar-collapse flex-row-reverse" id="navbarNavAltMarkup">
                <ul class="navbar-nav">
                    <li><a class="nav-item nav-link active" href="#" style="background-color:#666">Home <span class="sr-only">(current)</span></a</li>
                    <li><a class="nav-item nav-link" href="#">Doctors</a></li>
                    <li><a class="nav-item nav-link" href="#">Specialists</a></li>
                    <li><a class="nav-item nav-link" href="#">About</a></li>
                </ul>
            </div>
        </div>
    </nav>
    
    0 讨论(0)
  • 2020-11-21 07:06

    I'm new to stack overflow and new to front end development. This is what worked for me. So I did not want list items to be displayed.

    .hidden {
      display:none;
      } 
      
     #loginButton{
     
     margin-right:2px;
     
     }
    <nav class="navbar navbar-toggleable-md navbar-light bg-faded fixed-top">
      <button class="navbar-toggler navbar-toggler-right" 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="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item active hidden">
            <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
          </li>
          <li class="nav-item hidden">
            <a class="nav-link" href="#">Link</a>
          </li>
          <li class="nav-item hidden">
            <a class="nav-link disabled" href="#">Disabled</a>
          </li>
        </ul>
        <form class="form-inline my-2 my-lg-0">
          <button class="btn btn-outline-success my-2 my-sm-0" type="submit" id="loginButton"><a href="#">Log In</a></button>
          <button class="btn btn-outline-success my-2 my-sm-0" type="submit"><a href="#">Register</a></button>
        </form>
      </div>
    </nav>

    0 讨论(0)
  • 2020-11-21 07:13

    Bootstrap 4 has many different ways to align navbar items. float-right won't work because the navbar is now flexbox.

    You can use mr-auto for auto right margin on the 1st (left) navbar-nav. Alternatively, ml-auto could be used on the 2nd (right) navbar-nav , or if you just have a single navbar-nav.

    <nav class="navbar navbar-expand-md navbar-light bg-light">
        <a class="navbar-brand" href="#">Navbar</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav mr-auto">
                <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="#">Features</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Pricing</a>
                </li>
            </ul>
            <ul class="navbar-nav">
                <li class="nav-item">
                    <a class="nav-link" href="#">Login</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Register</a>
                </li>
            </ul>
        </div>
    </nav>
    

    https://codeply.com/go/P0G393rzfm

    There are also flexbox utils. In this case, you have 2 navbar-navs, so justify-content-between in navbar-collapse would work the even the space between them,

     <div class="navbar-collapse collapse justify-content-between">
         <ul class="navbar-nav mr-auto">
                   ..
         </ul>
         <ul class="navbar-nav">
               ..
         </ul>
     </div>
    

    **Update for Bootstrap 4.0 and newer**

    As of Bootstrap 4 beta, ml-auto will still work to push items to the right. Just be aware the the navbar-toggleable- classes have changed to navbar-expand-*

    Updated navbar right for Bootstrap 4


    Another frequent Bootstrap 4 Navbar right alignment scenario includes a button on the right that remains outside the mobile collapse nav so that it is always shown at all widths.

    Right align button that is always visible


    Related: Bootstrap NavBar with left, center or right aligned items

    0 讨论(0)
  • 2020-11-21 07:13

    In my case, I wanted just one set of navigation buttons / options and found that this will work:

    <div class="collapse navbar-collapse justify-content-end" id="navbarCollapse">
      <ul class="navbar-nav">
        <li class="nav-item">
          <a class="nav-link" href="#">Sign Out</a>
        </li>
      </ul>
    </div>
    

    So, you will add justify-content-end to the div and omit mr-auto on the list.

    Here is a working example.

    0 讨论(0)
  • 2020-11-21 07:15

    I am running Angular 4 (v.4.0.0) and ng-bootstrap (Bootstrap 4). This code won't all be relevant but hoping people can pick and choose what works. It took me sometime to find a solution to get my items to justify right, collapse properly and to implement a dropdown off my google (using OAuth) profile picture.

    <div id="header" class="header">
      <nav class="navbar navbar-toggleable-sm navbar-inverse bg-faded fixed-top">
        <button class="navbar-toggler navbar-toggler-right" 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="#">
              <img alt='Brand' src='../assets/images/logo-white.png' class='navbar-logo-img d-inline-block align-top '>
              <span class="navbar-logo-text">Oncoscape</span>
            </a>
        <div class="collapse navbar-collapse justify-content-end" id="navbarSupportedContent">
          <ul class="navbar-nav float-left">
            <a class="navbar-items nav-item nav-link active " *ngIf='authenticated' (click)='goDashboard()'>
              <span class="fa fa-dashboard"></span>Dashboard
            </a>
            <a class="nav-item nav-link navbar-items active" href="http://resources.sttrcancer.org/oncoscape-contact">
              <span class="fa fa-comments"></span>Feedback
            </a>
            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                <img *ngIf='user && authenticated'  class="navbar-pic" src={{user.thumbnail}} alt="Smiley face">
              </a>
              <div *ngIf='user && authenticated' class="dropdown-menu " aria-labelledby="navbarDropdownMenuLink">
                <a class="dropdown-item" (click)="toProfile()">Account</a>
                <div class="dropdown-item">
                  <app-login></app-login>
                </div>
              </div>
            </li>
          </ul>
        </div>
      </nav>
    </div>
    <router-outlet></router-outlet>
    
    0 讨论(0)
提交回复
热议问题