Bootstrap : comment aligner une Navbar (barre de navigation) à droite ?

Le framework Bootstrap propose des classes pour gérer facilement les barres de navigation dans son site internet. Beaucoup de sites internet proposent des options situées à droite de la barre de navigation, les menus pour se connecter par exemple. Il est possible d'aligner des éléments à droite de la barre de navigation.

Les barres de navigation utilisent un ensemble de classes commençant par les mots-clés "navbar" et "nav". Il existe deux solutions pour aligner à droite des éléments de la barre de navigation. La classe "ml-auto" permet d'aligner des éléments à droite de la barre. Les éléments qui n'ont pas cette classe seront alignés à gauche.

<div class="navbar-collapse collapse">
     <ul class="navbar-nav">
           <li class="nav-item">
               <a class="nav-link" href="#">Ce lien est aligné à gauche</a>
          </li>
     </ul>
     <ul class="navbar-nav ml-auto">
           <li class="nav-item">
               <a class="nav-link" href="#">Ce lien est aligné à droite</a>
          </li>
     </ul>
 </div>

Il est également possible de faire l'inverse avec la classe "mr-auto". Cette classe aligne les éléments à gauche de la barre. Cela permet aux éléments qui n'ont pas cette classe d'être automatiquement alignés à droite.

<div class="navbar-collapse collapse">
     <ul class="navbar-nav mr-auto">
           <li class="nav-item">
               <a class="nav-link" href="#">Ce lien est aligné à gauche</a>
          </li>
     </ul>
     <ul class="navbar-nav">
           <li class="nav-item">
               <a class="nav-link" href="#">Ce lien est aligné à droite</a>
          </li>
     </ul>
 </div>

Une autre possibilité est disponible grâce au modèle des "flexbox", à condition qu'il y ait uniquement deux éléments enfants. La classe "justify-content-between" permet d'aligner le premier élément à gauche et le deuxième à droite, en maintenant le maximum d'espace entre les deux.

<div class="navbar-collapse collapse justify-content-between">
     <ul class="navbar-nav">
           <li class="nav-item">
               <a class="nav-link" href="#">Ce lien est aligné à gauche</a>
          </li>
     </ul>
     <ul class="navbar-nav">
           <li class="nav-item">
               <a class="nav-link" href="#">Ce lien est aligné à droite</a>
          </li>
     </ul>
 </div>