Bootstrap alinea los elementos de la barra de navegación a la derecha
¿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.
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
!important
las agregué hasta el final. - cambiado
nav-item
anav-right
en el<li>
- agregó una
pull-sm-right
clase a la<li>
- agregó una
align-content-end
clase 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>
Bootstrap 5 (actualización 2021)
En Bootstrap 5 ( consulte esta pregunta ), ml-auto
se ha reemplazado por ms-auto
representar start
en 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-right
no funcionará porque la barra de navegación ahora está flexbox
.
Puede utilizarlo mr-auto
para el margen derecho automático en el primero (izquierdo) navbar-nav
.
Alternativamente , ml-auto
podrí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-end
en 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-nav
s, usarlo justify-content-between
funcionaría navbar-collapse
para 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-auto
seguirá 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
Relacionado: Bootstrap NavBar con elementos alineados a la izquierda, al centro o a la derecha
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-end
al div y omitirá mr-auto
en la lista.
A continuación se muestra un ejemplo práctico .
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">
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-auto
aml-auto
<ul class="navbar-nav ml-auto">
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-nav
a la derecha con la ayuda de la siguiente clase: ml-md-auto
.