toggler right links example con bootstrap align css twitter-bootstrap bootstrap-4 navbar

css - right - Centrar un elemento en Bootstrap 4 Navbar



navbar bootstrap 4 (9)

No importa lo que intente, no puedo centrar algo en la barra de navegación de Bootstrap, ¿alguna solución para ello?

Intenté agregar un div, usando margin:0 auto; o margin-right:auto; margin-left:auto; margin-right:auto; margin-left:auto; , clase de center-block utilizada. Nada funciona, ¿por qué es tan difícil lograr algo tan simple que no puedo entender, qué estoy haciendo mal?

Aquí está el código actual:

<nav class="navbar navbar-fixed-top navbar-dark main-nav"> <div class="container"> <ul class="nav navbar-nav pull-left"> <li class="nav-item active"> <a class="nav-link" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Download</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Register</a> </li> </ul> <ul class="nav navbar-nav text-center"> <li class="nav-item"><a class="nav-link" href="#">Website Name</a></li> </ul> <ul class="nav navbar-nav pull-right"> <li class="nav-item"> <a class="nav-link" href="#">Rates</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Help</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Contact</a> </li> </ul> </div>


¿Por qué no usar las utilidades de arranque? aquí está el código

<nav class="navbar navbar-expand-md bg-light navbar-light fixed-top"> <!-- Brand --> <a class="navbar-brand" href="#"><img src="your-logo"/></a> <!-- Toggler/collapsibe Button --> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar"> <span class="navbar-toggler-icon"></span> </button> <!-- Navbar links --> <div class="collapse navbar-collapse mx-auto justify-content-md-center" id="collapsibleNavbar" > <ul class="navbar-nav col-md-auto"> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> </ul> </div> </nav>


En Bootstrap 4, hay una nueva utilidad conocida como .mx-auto . Solo necesita especificar el ancho del elemento centrado.

Ref: http://v4-alpha.getbootstrap.com/utilities/spacing/#horizontal-centering

A diferencia de la respuesta de Bass Jobsen, que es un centro relativo a los elementos en ambos extremos, el siguiente ejemplo está centrado en absoluto.

Aquí está el HTML:

<nav class="navbar bg-faded"> <div class="container"> <ul class="nav navbar-nav pull-sm-left"> <li class="nav-item"> <a class="nav-link" href="#">Link 1</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link 2</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link 3</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link 4</a> </li> </ul> <ul class="nav navbar-nav navbar-logo mx-auto"> <li class="nav-item"> <a class="nav-link" href="#">Brand</a> </li> </ul> <ul class="nav navbar-nav pull-sm-right"> <li class="nav-item"> <a class="nav-link" href="#">Link 5</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link 6</a> </li> </ul> </div> </nav>

Y CSS:

.navbar-logo { width: 90px; }


Prueba esto.

.nav-tabs > li{ float:none !important; display:inline-block !important; } .nav-tabs { text-align:center !important; }


Tuve un problema similar; el texto de anclaje en mi barra de navegación Bootstrap4 no estaba centrado. Simplemente agregó text-center en la clase del ancla.


Ver: https://.com/a/14146967/1596547 , ahora puede usar:

<nav class="navbar navbar-light main-nav"> <div class="container text-xs-center"> <ul class="nav navbar-nav pull-xs-left"> <li class="nav-item active"> <a class="nav-link" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Download</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Register</a> </li> </ul> <ul class="nav navbar-nav" style="display: inline-block;"> <li class="nav-item"><a class="nav-link" href="#">Website Name</a></li> </ul> <ul class="nav navbar-nav pull-xs-right"> <li class="nav-item"> <a class="nav-link" href="#">Rates</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Help</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Contact</a> </li> </ul> </div> </nav>

aplique text-xs-center en su contenedor y configure display: inline-block; para tu lista


de los documentos

Las barras de navegación pueden contener fragmentos de texto con la ayuda de .navbar-text. Esta clase ajusta la alineación vertical y el espaciado horizontal para las cadenas de texto.

Apliqué la clase .navbar-text a mi elemento <li> , por lo que el resultado es

<li class="nav-item navbar-text">

Esto centra los enlaces verticalmente con respecto a mi marca de barra de navegación img


hacer un nuevo estilo

.container { position: relative; } .center-nav { position: absolute; left: 0; right: 0; margin: 0 auto; width: auto; max-width: 200px; text-align: center; } .center-nav li{ text-align: center; width:100%; }

Reemplace el nombre del sitio web UL con el siguiente

<ul class="nav navbar-nav center-nav"> <li class="nav-item"><a class="nav-link" href="#">Website Name</a></li> </ul>

Espero que esto ayude..


use mx-auto hará el trabajo

<ul class="navbar-nav mx-auto">


Actualizado para Bootstrap 4.1+

Bootstrap 4, la barra de navegación ahora usa flexbox para que el Website Name del Website Name pueda centrarse usando mx-auto . Los menús laterales izquierdo y derecho no requieren flotadores.

<nav class="navbar navbar-expand-md navbar-fixed-top navbar-dark bg-dark main-nav"> <div class="container"> <ul class="nav navbar-nav"> <li class="nav-item active"> <a class="nav-link" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Download</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Register</a> </li> </ul> <ul class="nav navbar-nav mx-auto"> <li class="nav-item"><a class="nav-link" href="#">Website Name</a></li> </ul> <ul class="nav navbar-nav"> <li class="nav-item"> <a class="nav-link" href="#">Rates</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Help</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Contact</a> </li> </ul> </div> </nav>

Centro de barra de navegación con mx-auto Demo

Si la barra de navegación solo tiene una única navbar-nav , entonces navbar-nav justify-content-center también se puede usar para centrar.

EDITAR

En la solución anterior, el Website Name del Website Name está centrado en relación con la navbar-nav izquierda y derecha, navbar-nav lo que si el ancho de estos navegadores adyacentes es diferente, el Website Name del Website Name ya no está centrado.

Para resolver esto, se puede usar una de las soluciones alternativas de flexbox para el centrado absoluto ...

Opción 1 - Posición de uso: absoluta;

Como está bien usar el posicionamiento absoluto en flexbox, una opción es usar esto en el elemento que se va a centrar.

.abs-center-x { position: absolute; left: 50%; transform: translateX(-50%); }

Centro de barra de navegación con posición absoluta Demo

Opción 2: usar la anidación de flexbox

Finalmente, otra opción es hacer que el elemento centrado también se display:flexbox (usando d-flex ) y centrado justificado. En este caso, cada componente de la barra de navegación debe tener flex-grow:1

A partir de Bootstrap 4 Beta, ahora se display:flex la barra de navegación display:flex . Bootstrap 4.1.0 incluye una nueva clase de flex-fill para hacer que cada sección de navegación llene el ancho:

<nav class="navbar navbar-expand-sm navbar-dark bg-dark main-nav"> <div class="container justify-content-center"> <ul class="nav navbar-nav flex-fill w-100 flex-nowrap"> <li class="nav-item active"> <a class="nav-link" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Download</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Register</a> </li> <li class="nav-item"> <a class="nav-link" href="#">More</a> </li> </ul> <ul class="nav navbar-nav flex-fill justify-content-center"> <li class="nav-item"><a class="nav-link" href="#">Center</a></li> </ul> <ul class="nav navbar-nav flex-fill w-100 justify-content-end"> <li class="nav-item"> <a class="nav-link" href="#">Help</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Contact</a> </li> </ul> </div> </nav>

Centro de barra de navegación con demostración de anidamiento de flexbox

Antes de Bootstrap 4.1.0, puede agregar la clase de relleno flexible de esta manera ...

.flex-fill { flex:1 }

A partir de 4.1 flex-fill se incluye en Bootstrap.

Demostraciones del centro de Bootstrap 4 Navbar
Más demostraciones centradas
Centrar enlaces en el escritorio, alinear a la izquierda en el móvil

Relacionado:
¿Cómo centrar elementos de navegación en Bootstrap?
Bootstrap NavBar con elementos alineados a la izquierda, centro o derecha
Cómo mover el elemento ''nav'' debajo de ''navbar-brand'' en mi Navbar