Este es el efecto que estamos tratando de lograr:
Las clases que deben aplicarse cambiaron con el lanzamiento de Bootstrap 3.1.0 y nuevamente con el lanzamiento de Bootstrap 4. Si una de las siguientes soluciones no parece estar funcionando, verifique el número de versión de Bootstrap que está importando. y prueba uno diferente.
Bootstrap 3
Antes de v3.1.0
Puede usar la pull-right
clase para alinear el lado derecho del menú con el símbolo de intercalación:
<li class="dropdown">
<a class="dropdown-toggle" href="#">Link</a>
<ul class="dropdown-menu pull-right">
<li>...</li>
</ul>
</li>
Violín: http://jsfiddle.net/joeczucha/ewzafdju/
Después de v3.1.0
A partir de la v3.1.0, hemos desaprobado la extensión .pull-right en menús desplegables. Para alinear un menú a la derecha, use .dropdown-menu-right. Los componentes de navegación alineados a la derecha en la barra de navegación utilizan una versión mixta de esta clase para alinear automáticamente el menú. Para anularlo, use .dropdown-menu-left.
Puede usar la dropdown-right
clase para alinear el lado derecho del menú con el símbolo de intercalación:
<li class="dropdown">
<a class="dropdown-toggle" href="#">Link</a>
<ul class="dropdown-menu dropdown-menu-right">
<li>...</li>
</ul>
</li>
Violín: http://jsfiddle.net/joeczucha/1nrLafxc/
Bootstrap 4
La clase para Bootstrap 4 es la misma que Bootstrap> 3.1.0, solo tenga cuidado porque el resto del marcado circundante ha cambiado un poco:
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#">
Link
</a>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="#">...</a>
</div>
</li>
Violín: https://jsfiddle.net/joeczucha/f8h2tLoc/
class="dropdown"
fue la clave para mí para obtener una alineación adecuadaNo estoy seguro de cómo otras personas resuelven este problema o si Bootstrap tiene alguna configuración para esto.
Encontré este hilo que proporciona una solución:
https://github.com/twbs/bootstrap/issues/1411
Una de las publicaciones sugiere el uso de
Probé y funciona.
Espero saber si Bootstrap proporciona una configuración para hacer esto, no a través del css anterior.
Salud.
fuente
Basado en Bootstrap doc:
A partir de la v3.1.0, .pull-right está obsoleto en los menús desplegables. usar .dropdown-menu-right
p.ej:
fuente
Si desea mostrar el menú hacia arriba, simplemente agregue la clase "desplegable"
y elimine la clase "desplegable" si existe en el mismo div.
fuente
Incluso si es tarde, espero poder ayudar a alguien. si el menú desplegable o submenú está en el lado derecho de la pantalla, está abierto en el lado izquierdo, si el menú o submenú está en el lado izquierdo, está abierto en el lado derecho.
Para detectar la posición vertical también puede agregar
https://jsfiddle.net/jd1100/rf9zvdhg/28/
fuente
Boostrap tiene una clase para eso llamada
navbar-right
. Entonces su código se verá de la siguiente manera:fuente
Si desea centrar el menú desplegable, esta es la solución.
fuente