Créer des barres de navigation complexes avec Bootstrap

Bootstrap met à notre disposition un ensemble de classes qui vont nous permettre de créer des barres de navigation complètes qui vont pouvoir intégrer différents éléments comme un menu, un champ de recherche, un nom de marque, etc.

Nous allons dans cette leçon passer en revue chacun de ces composants et créer une barre de navigation complète.

 

Présentation des barres de navigation Bootstrap et de la classe .navbar

Pour créer une barre de navigation avec Bootstrap, on va déjà devoir ajouter une classe .navbar à un élément qui va servir de conteneur à notre barre de navigation (généralement un élément nav ou div).

Les barres de navigation Bootstrap ont une taille fluide par défaut, c’est-à-dire qu’elles vont occuper tout l’espace disponible et se redimensionner en même temps que la fenêtre.

Nous allons ensuite pouvoir ajouter différents composants à notre barre de navigation comme un nom de marque, un menu, un champ de recherche, etc. Ces composants vont être mis en forme grâce aux classes suivantes :

  • La classe .navbar-brand pour le nom de la marque ;
  • La classe .navbar-nav pour le menu de navigation ;
  • La classe .form-inline pour ajouter un champ de formulaire (champ de recherche par exemple) ;
  • La classe .navbar-text pour ajouter tout autre texte.

En plus de cela, les classes .navbar-expand{-sm|-md|-lg|-xl} utilisées avec .navbar-toggler, .collapse et .navbar-collapse vont nous permettre de changer l’apparence de notre barre de navigation en fonction de la taille de la fenêtre pour proposer une meilleure ergonomie.

 

Le composant nom de marque et la classe .navbar-brand

On va utiliser la classe .navbar-brand pour appliquer des styles à un nom de marque dans une barre de navigation. On va pouvoir ajouter cette classe à la plupart des éléments HTML.

See the Pen
Bootstrap 4.3.1
by Pierre (@pierregiraud)
on CodePen.

 

Le composant menu et la classe .navbar-nav

La classe .navbar-nav va avoir un rôle similaire à la classe .nav vue précédemment. Par défaut, le menu créé va s’afficher en colonne.

On va pouvoir ajouter une classe .navbar-expand à l’élément portant la classe .navbar pour afficher le menu en ligne. Notez que cette classe possède des variations responsive avec .navbar-expand{-sm|-md|-lg|-xl} pour appliquer différentes mises en forme à notre barre de navigation en fonction de la taille de la fenêtre.

Avec .navbar-expand-md par exemple le menu s’affichera en colonne pour toutes les tailles de fenêtre jusqu’à 768px puis en ligne ensuite.

See the Pen
Bootstrap 4.3.2
by Pierre (@pierregiraud)
on CodePen.

On va également pouvoir ajouter un menu déroulant à notre barre de navigation en utilisant les classes .dropdown-* :

See the Pen
Bootstrap 4.3.3
by Pierre (@pierregiraud)
on CodePen.

 

Le composant champ de formulaire et la classe .form-online

On va encore pouvoir ajouter des champs de formulaire et particulièrement un champ de recherche dans notre barre de navigation grâce à la classe .form-online.

Pour que ce champ de recherche s’affiche à droite de la barre de navigation, on va pouvoir ajouter .mr-auto à notre menu.

Avec beaucoup d’éléments dans notre barre de navigation, l’affichage risque de ne pas être optimal pour les petits écrans. Pas d’inquiétude, nous allons voir comment remédier à cela dans la suite de cette leçon.

See the Pen
Bootstrap 4.3.4
by Pierre (@pierregiraud)
on CodePen.

Note : dans l’exemple ci-dessus, on se contente de créer le champ de recherche d’un point de vue visuel. Bien évidemment, pour que la recherche soit fonctionnelle, il faudra créer le script de recherche associé.

 

Le composant texte et la classe .navbar-text

Enfin, on va également pouvoir ajouter du texte dans notre barre de navigation en utilisant la classe .navbar-text.

See the Pen
Bootstrap 4.3.5
by Pierre (@pierregiraud)
on CodePen.

 

Créer une barre de navigation responsive

Par défaut, les barres de navigation possèdent une taille fluide, ce qui fait qu’elles rétrécissent ou s’étendent en même temps que la fenêtre.

On voudra cependant souvent aller plus loin dans l’adaptabilité de la barre et par exemple cacher le texte du menu sur des petits écrans et proposer à la place une icône permettant d’ouvrir ou de fermer le menu.

Pour faire cela, on va déjà devoir ajouter une classe .navbar-expand{-sm|-md|-lg|-xl} à l’élément portant la classe .navbar. La classe .navbar-expand-* va nous permettre d’indiquer à partir de quelle taille de fenêtre tous les textes de notre barre de navigation doivent être affichés.

Ensuite, on va utiliser les classes .collapse et .navbar-collapse autour des textes qu’on souhaite cacher pour les petites fenêtres et .navbar-toggler et .navbar-toggler-icon pour afficher / cacher ces textes sur petit écran lors d’un clic sur l’icône « burger » affichée grâce à la classe .navbar-toggler-icon.

Code :

See the Pen
Bootstrap 4.3.6
by Pierre (@pierregiraud)
on CodePen.

Résultat :

See the Pen
Bootstrap 4.3.6
by Pierre (@pierregiraud)
on CodePen.

 

Définir la couleur de la barre de navigation

Bootstrap met également deux classes à notre disposition afin de modifier les couleurs des textes de notre barre de recherche.

La classe .navbar-dark va définir une couleur de texte claire. L’idée à retenir ici est que .navbar-dark doit être utilisée avec des couleurs de fond foncées. A l’inverse, la classe .navbar-light va définir une couleur de texte foncée et va être utilisée avec des couleurs de fond claires.

See the Pen
Bootstrap 4.3.7
by Pierre (@pierregiraud)
on CodePen.

Laisser un commentaire