Bootstrap alinea los elementos de la barra de navegación a la derecha

Resuelto Luuk Wuijster asked hace 7 años • 24 respuestas

¿Cómo alineo un elemento de la barra de navegación a la derecha?

Quiero iniciar sesión y registrarme a la derecha. Pero todo lo que intento no parece funcionar.

Imagen de la barra de navegación

Esto es lo que he probado hasta ahora:

  • <div>alrededor del <ul>con el atributo:style="float: right"
  • <div>alrededor del <ul>con el atributo:style="text-align: right"
  • Probé esas dos cosas en las <li>etiquetas.
  • Intenté todas esas cosas de nuevo y !importantlas agregué hasta el final.
  • cambiado nav-itema nav-righten el<li>
  • agregó una pull-sm-rightclase a la<li>
  • agregó una align-content-endclase a la<li>

Este es mi código:

<div id="app" class="container">
  <nav class="navbar navbar-toggleable-md navbar-light bg-faded">
    <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <a class="navbar-brand" href="#">Navbar</a>
    <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="#">Features</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Pricingg</a>
      </li>
    </ul>
    <ul class="navbar-nav " >
      <li  class="nav-item">
        <a class="nav-link" href="{{ url('/login') }}">Login</a>
      </li>
      <li  class="nav-item">
        <a class="nav-link" href="{{ url('/register') }}">Register</a>
      </li>
    </ul>
  </nav>
  @yield('content')
</div>
Luuk Wuijster avatar Jan 07 '17 03:01 Luuk Wuijster
Aceptado

Bootstrap 5 (actualización 2021)

En Bootstrap 5 ( consulte esta pregunta ), ml-autose ha reemplazado por ms-autorepresentar starten lugar de left. Dado que la barra de navegación todavía se basa en flexbox , los márgenes automáticos O las clases de utilidad flexbox todavía se usan para alinear el contenido de la barra de navegación.

Por ejemplo, utilice me-auto...

<nav class="navbar navbar-expand-lg navbar-light bg-light">
    <div class="container-fluid">
        <a class="navbar-brand" href="#">Brand</a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarContent">
            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                <li class="nav-item">
                    <a class="nav-link active" href="#">Home</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Link</a>
                </li>
            </ul>
            <ul class="navbar-nav">
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Menu </a>
                    <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
                        <li><a class="dropdown-item" href="#">Action</a></li>
                        <li><a class="dropdown-item" href="#">Another action</a></li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</nav>

Bootstrap 5 alinea a la derecha el contenido de la barra de navegación


Bootstrap 4 (respuesta original)

Bootstrap tiene muchas formas diferentes de alinear los elementos de la barra de navegación . float-rightno funcionará porque la barra de navegación ahora está flexbox.

Puede utilizarlo mr-autopara el margen derecho automático en el primero (izquierdo) navbar-nav. Alternativamente , ml-autopodría usarse en el segundo (derecho) navbar-nav, o si solo tiene uno 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

También hay utilidades flexbox. Por ejemplo, use justify-content-enden el menú contraer:

<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Brand</a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse justify-content-end" id="navbarNav">
      <ul class="navbar-nav">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="#">Contact</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Pricing</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Download</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

O cuando tenga 2 navbar-navs, usarlo justify-content-betweenfuncionaría navbar-collapsepara igualar el espacio entre las barras de navegación:

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

Actualización para Bootstrap 4.0 y más reciente

A partir de Bootstrap 4 beta, ml-autoseguirá funcionando para empujar elementos hacia la derecha. Solo tenga en cuenta que las navbar-toggleable-clases han cambiado anavbar-expand-*

Barra de navegación actualizada a la derecha para Bootstrap 4


Otro escenario frecuente de alineación a la derecha de la barra de navegación de Bootstrap 4 incluye un botón a la derecha que permanece fuera de la navegación móvil contraída para que siempre se muestre en todos los anchos.

Botón de alineación a la derecha que siempre está visible

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Relacionado: Bootstrap NavBar con elementos alineados a la izquierda, al centro o a la derecha

Carol Skelly avatar Jan 06 '2017 20:01 Carol Skelly

En mi caso, quería solo un conjunto de botones/opciones de navegación y descubrí que esto funciona:

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

Entonces, agregará justify-content-endal div y omitirá mr-autoen la lista.

A continuación se muestra un ejemplo práctico .

Craig van Tonder avatar Jan 08 '2017 01:01 Craig van Tonder

Para aquellos que todavía están luchando con este problema en BS4, simplemente prueben el siguiente código:

<ul class="navbar-nav ml-auto">
Muhammad Tarique avatar Jan 20 '2018 11:01 Muhammad Tarique

En Bootstrap 4

Si desea alinear la marca a su izquierda y todos los elementos de la barra de navegación a la derecha, cambie el valor predeterminado mr-autoaml-auto

<ul class="navbar-nav ml-auto">
geet Sebastian avatar Apr 03 '2018 02:04 geet Sebastian

El Bootsrap 4.0.0-beta.2, ninguna de las respuestas enumeradas aquí funcionó para mí. Finalmente, el sitio Bootstrap me dio la solución, no a través de su documento sino a través del código fuente de su página...

Getbootstrap.com alinea su derecha navbar-nava la derecha con la ayuda de la siguiente clase: ml-md-auto.

ClemC avatar Dec 11 '2017 23:12 ClemC