C'est l'effet que nous essayons d'obtenir:
Les classes à appliquer ont changé avec la version de Bootstrap 3.1.0 et à nouveau avec la version de Bootstrap 4. Si l'une des solutions ci-dessous ne semble pas fonctionner, vérifiez le numéro de version de Bootstrap que vous importez et essayez-en un autre.
Bootstrap 3
Avant la v3.1.0
Vous pouvez utiliser la pull-right
classe pour aligner le côté droit du menu avec le curseur:
<li class="dropdown">
<a class="dropdown-toggle" href="#">Link</a>
<ul class="dropdown-menu pull-right">
<li>...</li>
</ul>
</li>
Violon: http://jsfiddle.net/joeczucha/ewzafdju/
Après la v3.1.0
Depuis la v3.1.0, nous avons abandonné .pull-right dans les menus déroulants. Pour aligner un menu à droite, utilisez .dropdown-menu-right. Les composants de navigation alignés à droite dans la barre de navigation utilisent une version mixin de cette classe pour aligner automatiquement le menu. Pour le remplacer, utilisez .dropdown-menu-left.
Vous pouvez utiliser la dropdown-right
classe pour aligner le côté droit du menu avec le curseur:
<li class="dropdown">
<a class="dropdown-toggle" href="#">Link</a>
<ul class="dropdown-menu dropdown-menu-right">
<li>...</li>
</ul>
</li>
Violon: http://jsfiddle.net/joeczucha/1nrLafxc/
Bootstrap 4
La classe pour Bootstrap 4 est la même que Bootstrap> 3.1.0, faites juste attention car le reste du balisage environnant a un peu changé:
<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>
Violon: https://jsfiddle.net/joeczucha/f8h2tLoc/
class="dropdown"
été la clé pour moi afin d'obtenir un bon alignementJe ne sais pas comment d'autres personnes résolvent ce problème ou si Bootstrap a une configuration pour cela.
J'ai trouvé ce fil qui apporte une solution:
https://github.com/twbs/bootstrap/issues/1411
L'un des articles suggère l'utilisation de
J'ai testé et ça marche.
J'espère savoir si Bootstrap fournit la configuration pour faire cela, pas via le CSS ci-dessus.
À votre santé.
la source
Basé sur la documentation Bootstrap:
Depuis la v3.1.0, .pull-right est obsolète dans les menus déroulants. utilisez .dropdown-menu-right
par exemple:
la source
Si vous voulez afficher le menu vers le haut, ajoutez simplement la classe "dropup"
et supprimez la classe "dropdown" si elle existe à partir du même div.
la source
Même s'il est tard, j'espère pouvoir aider quelqu'un. si le menu déroulant ou le sous-menu est sur le côté droit de l'écran, il est ouvert sur le côté gauche, si le menu ou le sous-menu est sur la gauche, il est ouvert sur le côté droit.
Pour détecter la position verticale, vous pouvez également ajouter
https://jsfiddle.net/jd1100/rf9zvdhg/28/
la source
Boostrap a une classe pour cela appelé
navbar-right
. Ainsi, votre code ressemblera à ceci:la source
Si vous souhaitez centrer la liste déroulante, c'est la solution.
la source