Académique Documents
Professionnel Documents
Culture Documents
FRONT-END: BOOTSTRAP 5
Table des matières
1. Introduction ..................................................................................................................................6
1.1 Le développement des sites web ...........................................................................................6
1.2 Les fonctionnalités de Bootstrap ...........................................................................................7
1.3 La compatibilité avec les navigateurs ...................................................................................7
2. Installer Bootstrap.........................................................................................................................8
2.1. Les objectifs ..........................................................................................................................8
2.2. Installer Bootstrap .................................................................................................................8
2.3. Télécharger la distribution Bootstrap ....................................................................................8
2.4. Lier Bootstrap aux fichiers HTML .......................................................................................9
2.5. Le dossier de distribution ....................................................................................................10
2.5.1. Les fichiers du dossier de distribution .........................................................................10
2.5.2. Le dossier css .................................................................................................................. 11
2.5.3. Le dossier js ....................................................................................................................13
2.6. Un site Bootstrap lié aux fichiers locaux ............................................................................13
1. Le dossier du site ....................................................................................................................13
2. Les liaisons aux fichiers CSS et JS .........................................................................................15
3. Un exemple de page Bootstrap ...............................................................................................15
2.7. Un site Bootstrap lié aux fichiers par CDN.........................................................................17
1. Les réseaux de diffusion de contenu .......................................................................................17
2. Les liaisons au fichier CSS .....................................................................................................17
3. La liaison aux fichiers JS ........................................................................................................18
4. Un exemple de page Bootstrap ...............................................................................................18
2.8. Les types de sites Bootstrap ................................................................................................19
3. La mise en page avec Bootstrap .................................................................................................19
Bootstrap utilise les techniques de mise en page Flexbox avec les CSS3,
ce qui implique d’utiliser des navigateurs récents. Pour exploiter des
pages conçues avec Bootstrap, il faut utiliser Google Chrome en version
supérieure ou égale à 60, Firefox supérieur ou égal à 60, Apple Safari
supérieure ou égale 12 et les navigateurs sous iOS supérieur ou égal
12..
Pour la compatibilité des CSS avec les navigateurs, Bootstrap a
fusionné une partie de la
Dans la zone Compiled CSS and JS, cliquez sur le bouton Download.
pouvez aussi remarquer des fichiers ayant pour extension .map. Ces
fichiers servent à certains navigateurs pour retrouver les lignes
originales à partir des fichiers minifiés.
2.5.3. Le dossier js
1. Le dossier du site
Dans cet exemple, nous allons voir comment créer un site Bootstrap qui
soit lié aux fichiers CSS et JS locaux. C’est-à-dire que les fichiers de
Bootstrap ont été téléchargés et qu’ils sont placés dans le dossier du
site web.
Le schéma ci-dessous représente les dossiers et fichiers
indispensables pour le bon fonctionnement d’un site web avec le
framework Bootstrap.
Notez bien qu’il faut insérer cette liaison au fichier CSS de Bootstrap
avant tous les autres fichiers CSS.
3. La liaison aux fichiers JS
Maintenant nous devons lier les deux fichiers JavaScript :
pour Popper.js et pour Bootstrap. Nous allons utiliser le fichier unique
bundle.min.js.
Toujours dans l’écran Getting started - Introduction, dans la
zone Bundle, cliquez sur le bouton Copy, pour copier le code de liaison.
Dès lors que vous souhaitez créer une mise en page avec Bootstrap,
vous devez placer cette mise en page dans un conteneur. Les
conteneurs sont les briques de base de Bootstrap. Les conteneurs sont
des boîtes <div> qui utilisent deux classes Bootstrap.
Si vous souhaitez avoir une mise en page à largeur fixe, mais qui
s’adaptera aux largeurs des médias, vous utiliserez la
classe container. La largeur maximale (propriété CSS max-width)
sera déterminée par la requête de média de Bootstrap.
<div class="container">
Contenu de la mise en page
</div>
Ce modèle de mise en page est basé sur le module CSS3 Flexbox du W3C : Flexible Box
Layout Module Level 1 (https://www.w3.org/TR/css-flexbox-1/). Ce module, qui est
encore en Candidate Recommendation au 19 novembre 2018, est parfaitement reconnu
par tous les navigateurs modernes : https://caniuse.com/#search=flex.
Vous devez connaître quelques principes de conception des grilles avec Flexbox et
Bootstrap :
Seules deux colonnes ont leur largeur d’indiquée : sur 6 colonnes pour la
première et sur 3 colonnes pour la deuxième. Donc ces largeurs
d’alignement sur la grille sont fixées. Les autres colonnes occupent
proportionnellement la place disponible restante.
Dans la première ligne, les deux colonnes occupent 12-6=6 colonnes
restantes, soit 3 chacune.
Dans la deuxième ligne, les deux colonnes occupent 12-3=9 colonnes
restantes, soit 4,5 chacune.
Notez un point important : sur les très petits écrans, la propriété flex-
wrap du module Flexbox autorise à une colonne d’aller à ligne, afin de
conserver une possibilité de lecture confortable.
Pour la deuxième ligne, les tailles des colonnes étaient définies pour les
écrans larges. Ici nous avons une largeur moyenne, donc la largeur
précédente des colonnes ne s’applique plus. Chaque colonne occupe
toute la largeur disponible de la ligne.
Voici l’affichage obtenu sur un petit écran :
Nous avons une seule ligne, <div class="row">, qui contient trois
colonnes. Ces colonnes sont respectivement alignées sur 6 colonnes
(<div class="col-6">), 5 colonnes (<div class="col-5">)
et 4 colonnes (<div class="col-4">). Nous avons donc un
alignement global de 6+5+4=15 colonnes, sur un maximum de 12. Dans
ce cas, la colonne "en trop" passe automatiquement à la ligne.
Voici l’affichage obtenu :
Notez bien que dans cet exemple nous n’avons pas indiqué de taille
d’écran, mais vous pouvez bien sûr combiner décalage et tailles d’écran.
Si vous avez un nombre de colonnes inférieur à 12 dans une ligne, vous
pouvez espacer automatiquement la dernière colonne pour qu’elle se
positionne à droite en fin de ligne. Pour cela, il suffit d’utiliser les
classes ms-auto, me-auto et col-auto.
Vous pouvez télécharger le dossier de cet exemple, nommé 03-Grille-12.
Voici un exemple d’utilisation de ces classes :
<div class="container">
<div class="row">
<div class="col-md-4">Lorem ipsum dolor sit amet...</div>
<div class="col-md-4 ms-auto">Ut eget faucibus nisl...</div>
</div>
<div class="row">
<div class="col-md-3 ms-md-auto">Cras tortor elit...</div>
<div class="col-md-3 ms-md-auto">Phasellus in purus in neque...</div>
</div>
<div class="row">
<div class="col-auto me-auto">Fusce tempor tempor justo eu porttitor.</div>
<div class="col-auto">Nullam eget sem in elit pretium volutpat.</div>
</div>
</div>
1. L’alignement horizontal
La propriété justify-content du module CSS3 Flexbox permet de
gérer les alignements horizontaux des colonnes dans une ligne. Cela est
valable quand vous avez des lignes incomplètes, quand la somme des
alignements de colonnes est inférieure à 12. Flexbox peut aligner les
colonnes à gauche (valeur par défaut), au centre, à droite ou répartir les
colonnes dans la ligne.
Vous pouvez télécharger le dossier de cet exemple, nommé 03-Grille-14.
Voici le code du conteneur :
<div class="container">
<div class="row">
<div class="col-4">
Aenean eu leo quam...
</div>
<div class="col-4">
Vestibulum id...
</div>
</div>
<div class="row justify-content-start">
<div class="col-4">
Aenean eu leo quam...
</div>
<div class="col-4">
Vestibulum id ligula porta...
</div>
</div>
<div class="row justify-content-center">
<div class="col-4">
Aenean eu leo quam...
</div>
<div class="col-4">
Vestibulum id...
</div>
</div>
<div class="row justify-content-end">
<div class="col-4">
Aenean eu leo quam...
</div>
<div class="col-4">
Vestibulum id...
Par défaut, les colonnes sont affichées dans l’ordre défini dans le code.
Dans une ligne, la première colonne saisie dans le code est affichée en
premier, puis la deuxième saisie dans le code est affichée en deuxième
et ainsi de suite. Vous pouvez décider que cet ordre par défaut ne vous
convient pas. Dans ce cas, Flexbox vous permet d’ordonner les
colonnes comme vous le souhaitez dans les lignes, à l’aide de plusieurs
classes.
Vous pouvez télécharger le dossier de cet exemple, nommé 03-Grille-17.
Voici le code du conteneur :
<div class="container">
<div class="row">
<div class="col">
Colonne 1
</div>
<div class="col">
Colonne 2
</div>
<div class="col">
Colonne 3
</div>
<div class="col">
Colonne 4
</div>
</div>
<div class="row">
<div class="col">
4. Le texte
4.1. L’objectif
Bootstrap propose une série de règles CSS pour la mise en forme typographique du texte. Nous
allons passer en revue toutes ces règles CSS.
Tous les exemples de ce titre peuvent être téléchargés dans le dossier nommé 04-Typographie-01.
Les paragraphes <p> utilisent les propriétés de Reboot que nous avons
évoquées précédemment :
p {
margin-top: 0;
margin-bottom: 1rem;
}
Dans notre exemple, le deuxième utilise la classe .lead, dont voici ses
propriétés :
.lead {
font-size: 1.25rem;
font-weight: 300;
}
Bootstrap nous propose des mises en forme spécifiques pour les mises
en évidence de textes dans des paragraphes.
Le dossier de cet exemple à télécharger est nommé 04-Typographie-03.
Voici le code de cet exemple :
<p>Cras mattis <mark>consectetur</mark> purus sit amet fermentum.</p>
<p>Cras mattis <del>consectetur</del> purus sit amet fermentum.</p>
<p>Cras mattis <s>consectetur</s> purus sit amet fermentum.</p>
<p>Cras mattis <ins>consectetur</ins> purus sit amet fermentum.</p>
<p>Cras mattis <u>consectetur</u> purus sit amet fermentum.</p>
<p>Cras mattis <small>consectetur</small> purus sit amet fermentum.</p>
<p>Cras mattis <strong>consectetur</strong> purus sit amet fermentum.</p>
<p>Cras mattis <em>consectetur</en> purus sit amet fermentum.</p>
Le dossier à télécharger pour tous les exemples de cette section est nommé 4-Typographie-06.
1. Les listes classiques
De manière tout à fait classique, utilisez les éléments <ul> et <ol> pour créer vos listes non
ordonnées et ordonnées :
<p>Une liste non ordonnée :</p>
<ul>
<li>Pommes</li>
<li>Ananas</li>
<li>Poires</li>
<li>Fraises</li>
Le dossier à télécharger pour tous les exemples de cette section est nommé 4-Typographie-07.
1. L’élément <code>
Pour les pages web nécessitant d’afficher du code dans une ligne, Bootstrap modifie nativement la
mise en forme de l’élément <code>.
Voici un exemple d’utilisation de l’élément <code> :
<p>Utilisez la classe <code>.ma-classe</code> pour l'en-tête.</p>
Voici l’affichage obtenu :
4. L’élément <kbd>
L’élément <kbd> permet d’indiquer l’utilisation des touches d’un clavier. La mise en évidence de
son contenu est forte.
Le code de l’exemple :
<p>Utilisez les touches <kbd>Ctrl</kbd> et <kbd>S</kbd>.</p>
Voici l’affichage obtenu :
Voyons dans ce chapitre les classes Bootstrap qui permettent de mettre en forme les images, les
figures et les carousels. Les images sont de simples illustrations insérées dans le contenu de la page,
alors que les figures comportent une illustration et une légende. Les carousels permettent une
interaction avec les visiteurs.
Bootstrap utilise par défaut des images responsives qui vont donc s’adapter aux tailles des écrans de
diffusion.
Le dossier à télécharger des exemples pour les images et les figures est nommé 05-Images-01.
Voici le code d’un exemple simple d’une image insérée dans une grille :
<div class="container">
<div class="row">
<div class="col">
Voici l’affichage obtenu sur un petit écran, l’image occupe aussi toute la place disponible dans la
colonne mais elle est réduite proportionnellement :
La classe .img-thumbnail permet d’afficher une bordure fine et des coins arrondis à une image qui
reste responsive :
<div class="row">
<div class="col">
<p>La même photo de Venise, avec une fine bordure :</p>
<img src="venise.jpg" class="img-thumbnail"
alt="Un canal à Venise">
</div>
</div>
Voici l’affichage obtenu sur un petit écran :
Les classes .float-start et .float-end permettent d’aligner à droite et à gauche, les images dans une
même colonne d’une grille.
Voici le code de cet exemple simple :
<div class="row">
<div class="col">
<img src="dorsoduro-01.jpg" class="float-start" alt="Dorsoduro à Venise">
<img src="dorsoduro-02.jpg" class="float-end" alt="Dorsoduro à Venise">
</div>
</div>
Voici l’affichage obtenu sur un écran de taille moyenne :
Dans le design de vos sites web, vous pouvez souhaiter prendre en considération les types d’écrans
de vos visiteurs. Ceux-ci peuvent avoir des écrans standards ou des écrans à haute définition. Pour
ces derniers il faut prévoir des images à haute définition aussi. Pour mettre en place cette dualité,
vous devez utiliser les éléments <picture>, <source> et <img>.
Voici une structure simple :
<picture>
<source srcset="venise-hd.jpg" type="image/svg+xml">
<img src="venise.jpg" class="img-fluid img-thumbnail"
alt="Venise">
</picture>
Analysons cette structure classique :
Les figures dans l’élément <figure>, comportent l’image dans l’élément <img>, et sa légende dans
l’élément <figcaption>.
Voici la structure de cet exemple :
<div class="row">
<div class="col text-center">
<figure class="figure">
<img src="dorsoduro-01.jpg" class="figure-img
img-fluid rounded" alt="Venise">
<figcaption class="figure-caption">Basilique
Santa Maria della Salute.</figcaption>
</figure>
</div>
</div>
Notez que l’élément <figure> utilise la classe .figure, que l’image <img> utilise notamment la
classe .figure-img et que l’élément <figcaption> utilise la classe .figure-caption. Toutes ces classes
participent à l’élaboration de la mise en forme.
Voici l’affichage obtenu :
Le dossier à télécharger contenant les exemples de cette section est nommé 05-Images-02.
Les fichiers des trois exemples sont nommés index1.html, index2.html et index3.html.
1. Un carousel simple
Pour ce premier exemple (index1.html), nous allons créer un carousel qui va permettre un
défilement automatique des images. Voici la structure de cet exemple :
<div id="venise" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img class="d-block w-100"
src="dorsoduro-01.jpg" alt="Dorsoduro">
</div>
<div class="carousel-item">
<img class="d-block w-100"
src="dorsoduro-02.jpg" alt="Dorsoduro">
</div>
<div class="carousel-item">
<img class="d-block w-100"
src="dorsoduro-03.jpg" alt="Dorsoduro">
</div>
</div>
</div>
Le conteneur général est une boîte <div> ayant un identifiant et une classe
dédiée : <div id="venise" class="carousel slide" data-bs-ride="carousel">.
Pour ce deuxième exemple (index2.html), nous allons ajouter des boutons de contrôle afin que les
visiteurs puissent naviguer à leur guise entre les images. Nous afficherons aussi des indicateurs
d’ordre pour l’affichage des images.
Voici le code utilisé :
<div id="venise-btn" class="carousel slide" data-bs-ride="carousel">
<!-- Les indicateurs de slide -->
<div class="carousel-indicators">
Les indicateurs de position des images sont placés dans la boîte <div
class="carousel-indicators">, sous la forme de boutons
numérotés. Voici le code du premier indicateur :
<button type="button" data-bs-target="#venise-btn" data-bs-slide-to=
"0" class="active" aria-current="true" aria-label="Slide 1"></button>
Pour avoir ces légendes, il suffit d’ajouter une boîte <div> sous
chaque image. Cette boîte <div> utilise la classe
6. Les tableaux
Dans ce chapitre nous allons étudier ce que nous propose Bootstrap pour la mise en forme des
tableaux.
Notez que la largeur du tableau occupe 100% de la place disponible de son parent, la boîte <div> de
la colonne.
Voici les principales règles CSS utilisées pour la mise en forme de ce tableau :
.table {
width: 100%;
margin-bottom: 1rem;
color: #212529;
vertical-align: top;
border-color: #dee2e6;
}
.table > thead {
vertical-align: bottom;
}
thead,tbody,tfoot,tr,td,th {
border-color: inherit;
border-style: solid;
border-width: 0;
}
2. Les tableaux à fond sombre
Le dossier à télécharger pour cet exemple est nommé 06-Tableaux-02.
Si vous souhaitez avoir un tableau ayant un fond sombre, ajoutez la classe .table-dark à
l’élément <table> :
<table class="table table-dark">
...
</table>
Pour avoir des lignes grises et blanches en alternance, ajoutez la classe .table-striped à
l’élément <table>.
Le dossier à télécharger pour cet exemple est nommé 06-Tableaux-03.
Voici le code de cet exemple :
<table class="table table-striped">
...
</table>
Voici l’affichage du tableau obtenu, avec ses lignes grises en alternance :
Le fond grisé est appliqué aux éléments <td> avec le sélecteur : nth-of-type(odd) :
Vous pouvez aussi utiliser cette classe avec un tableau sombre : <table class="table table-
striped table-dark">.
Vous pouvez obtenir un résultat similaire pour les tableaux sombre en ajoutant cette même
classe : <table class="table table-bordered table-dark">.
Vous pouvez activer une mise en évidence des lignes survolées par le pointeur de la souris. Ajoutez
la classe .table-hover à l’élément <table>.
Le dossier à télécharger pour cet exemple est nommé 06-Tableaux-05.
Le code HTML de cet exemple :
<table class="table table-hover">
...
</table>
La mise en évidence de la deuxième ligne de données survolée :
Vous pouvez utiliser sur les cellules (<td>) et/ou sur les lignes (<tr> ou sur le tableau (<table>)),
des classes qui permettent d’afficher un fond coloré.
• La classe .active affiche un fond gris.
• La classe .primary affiche un fond bleu pâle.
• La classe .secondary affiche un fond gris clair.
• La classe .danger affiche un fond rouge clair.
• La classe .info affiche un fond vert pâle.
• La classe .light affiche un fond blanc.
• La classe .dark affiche un fond gris foncé.
Pour que vos tableaux soient responsives, il faut ajouter la classe .table-responsive à
l’élément parent du tableau, l’élément <div> de la colonne de la grille dans cet exemple.
Le dossier à télécharger pour cet exemple est nommé 06-Tableaux-08.
<div class="container">
<div class="row">
<div class="col table-responsive">
<table class="table">
...
</table>
</div>
</div>
</div>
Cette classe va permettre d’utiliser une barre de défilement pour visualiser les tableaux très larges.
Voici l’exemple d’un tableau large affiché dans une petite largeur d’écran :
7. Les formulaires
Dans ce chapitre, nous allons étudier les styles CSS proposés par Bootstrap pour mettre en forme
les formulaires et leurs éléments inclus : les champs de saisie, les cases à cocher, les boutons radio...
Avec de nombreux exemples, nous allons aussi étudier la mise en page des formulaires à l’aide de
classes dédiées et avec les colonnes de la grille de Bootstrap.
La structure de base
1. Le formulaire Bootstrap
Le dossier à télécharger pour cet exemple est nommé 07-Formulaires-01.
Pour insérer un formulaire, nous allons utiliser une grille Bootstrap très simple, avec un
conteneur <div class="container">, une ligne <div class="row"> et une colonne <div class="col">.
Le formulaire est placé dans un élément <form> possédant l’attribut role="form". Ensuite, chaque
élément du formulaire sera inséré dans une boîte <div>. Les éléments insérés auront des classes
spécifiques pour leur mise en forme.
Voici un exemple simple avec deux champs de saisie, une case à cocher et un bouton de validation :
Les choix 1 et 2 sont cochés, le choix 3 n’est pas coché. La couleur bleu d’un bouton sélectionné
est plus foncée que celle d’un bouton non coché.
5. Les listes d’options
Bootstrap vous propose de personnaliser l’affichage des listes d’options de l’élément <select> avec
la classe dédiée .custom-select.
Le dossier à télécharger pour cet exemple est nommé 07-Formulaires-08.
Voici le code de cet exemple :
<form role="form">
<div class="mb-3">
<p>Choisissez une ville :</p>
<select class="form-select" aria-label="Choisir une ville">
<option value="venise">Venise</option>
<option value="paris">Paris</option>
<option value="londres">Londres</option>
<option value="madrid">Madrid</option>
</select>
</div>
<button type="submit" class="btn btn-primary">Envoyer
</button>
Notez que les attributs multiple et size sont bien pris en compte.
La sélection de fichiers
La sélection de fichiers sur l’ordinateur des internautes est une action très courante. Pour insérer un
sélecteur de fichier, il suffit d’utiliser un élément input, avec l’attribut type="file" et vous pouvez
aussi utiliser la classe form-control.
Le dossier à télécharger pour cet exemple est nommé 07-Formulaires-09.
Voici le code de cet exemple :
<form role="form">
<div class="mb-3">
<label for="fichier" class="form-label">Sélectionnez un fichier :</label>
<input class="form-control" type="file" id="fichier">
</div>
<button type="submit" class="btn btn-primary">Envoyer</button>
</form>
Voici l’affichage obtenu :
Les règles CSS utilisées sont très nombreuses, voyons ici celles qui s’appliquent aux étiquettes :
.form-floating > label {
position: absolute;
top: 0;
left: 0;
height: 100%;
padding: 1rem 0.75rem;
pointer-events: none;
border: 1px solid transparent;
L’aide contextuelle placée dans l’élément <small> est liée au champ <input> par l’attribut id.
Voici les sélecteurs utilisés dans cette mise en forme :
.text-muted {
color: #6c757d!important;
}
1. L’objectif
Bootstrap donne la possibilité d’ajouter des éléments d’information avant ou après les champs de
saisie. Ces informations peuvent être de tout ordre : des signes monétaires, des consignes courtes,
des symboles, des boutons...
Le dossier à télécharger pour les exemples de cette section est nommé 07-Formulaires-12.
2. Ajouter des informations supplémentaires
Dans cet exemple, nous allons ajouter des informations supplémentaires simples aux champs de
saisie. Ces éléments d’information seront placés soit à gauche, soit à droite des champs ou soit des
deux côtés.
Voici le code de cet exemple :
<form role="form">
<div class="input-group mb-3">
<span class="input-group-text" id="prenom">Prénom</span>
<input type="text" class="form-control" placeholder="Votre prénom"
aria-label="prenom" aria-describedby="prenom">
</div>
<div class="input-group mb-3">
Nous avons toujours une boîte <div> avec la classe .input-group. Dans celle-ci, nous avons dans
l’ordre, un élément <span> pour l’affichage de l’information, et deux éléments <input>, pour les
deux champs de saisie.
4. Les informations supplémentaires multiples
Dans le premier exemple, nous avons placé des informations supplémentaires à gauche et à droite
du champ de saisie. Mais vous pouvez parfaitement placer plusieurs informations supplémentaires
du même côté.
Voici un exemple simple :
<div class="input-group">
<input type="text" class="form-control" aria-label="Montant en euros">
<span class="input-group-text" id="en-euros">€</span>
<span class="input-group-text" id="ss-cent">Sans les centimes</span>
</div>
Dans la boîte <div> classique, nous avons cette fois dans l’ordre l’élément <input> pour le champ
de saisie, suivi par les deux éléments <span> pour afficher les informations voulues.
Voici l’affichage obtenu :
Dans ce chapitre nous allons étudier les composants d’interface qui peuvent être utilisés dans des
interfaces d’administration d’applications web. Mais rien ne vous empêche de les utiliser dans vos
pages web pour des cas particuliers.
Les badges
1. L’objectif
Les badges de Bootstrap permettent de mettre en évidence des mots importants, les liens
notables, des compteurs divers. Il suffit d’utiliser la classe .badge dans un
élément <span> ou <a> par exemple. Une deuxième classe dédiée va permettre de colorer ce badge.
Le dossier à télécharger pour cet exemple est nommé 08-Interface-01.
2. Les badges colorés
Dans ce premier exemple, nous allons placer des mots dans des badges colorés. Les classes qui
permettent de colorer les badges et les textes sont les suivantes :
• .bg-primary : bleu.
• .bg-secondary : gris.
• .bg-success : vert.
• .bg-danger : rouge.
• .bg-warning : orangé.
• .bg-info : bleu-vert.
• .bg-light: gris très clair.
• .bg-dark : noir.
Voici le code utilisé :
<p>
Nibh Ornare <span class="badge bg-primary">Primary</span><br />
Fusce Ridiculus <span class="badge bg-secondary">Secondary</span><br />
Fringilla Amet <span class="badge bg-success">Success</span><br />
Vehicula Ipsum <span class="badge bg-danger">Danger</span><br />
Vestibulum Sem <span class="badge bg-warning">Warning</span><br />
Les alertes
1. L’objectif
Les alertes sont plutôt faites pour les interfaces d’administration des CMS, mais vous pouvez les
utiliser pour mettre en évidence des propos importants dans votre site web.
Le dossier à télécharger pour cet exemple est nommé 08-Interface-02.
2. Les alertes simples
Pour afficher une carte Bootstrap, il vous suffit d’utiliser, par exemple, une boîte <div> avec la
classe .alert et une classe supplémentaire pour colorer l’arrière-plan de la boîte. Les couleurs sont
les mêmes que pour les badges, mais elles sont plus pastel.
Voici le code utilisé dans cet exemple :
<h2 class="titre">Les alertes simples</h2>
<div class="alert alert-primary role="alert"">Donec id elit non mi porta
gravida at eget metus. Vestibulum id ligula porta felis euismod semper.</div>
<div class="alert alert-secondary role="alert"">Donec id elit non mi porta
gravida at eget metus. Vestibulum id ligula porta felis euismod semper.</div>
<div class="alert alert-success role="alert"">Donec id elit non mi porta
gravida at eget metus. Vestibulum id ligula porta felis euismod semper.</div>
<div class="alert alert-danger role="alert"">Donec id elit non mi porta
gravida at eget metus. Vestibulum id ligula porta felis euismod semper.</div>
<div class="alert alert-warning role="alert"">Donec id elit non mi porta
gravida at eget metus. Vestibulum id ligula porta felis euismod semper.</div>
<div class="alert alert-info role="alert"">Donec id elit non mi porta
1. L’objectif
Les barres de progression sont très utilisées dans les interfaces d’administration des applications
web. Bootstrap nous propose une série de barres de progression mises en forme de manière variée.
Le dossier à télécharger pour ces exemples est nommé 08-Interface-03.
2. La barre de progression simple
Commençons par une barre de progression simple, sur fond bleu.
Voici le code de cet exemple simple :
<div class="progress">
<div class="progress-bar" role="progressbar" style="width: 25%"
aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">
</div>
</div>
Analysons le code utilisé :
• Le conteneur de la barre de progression est placé dans une boîte : <div class="progress">.
• La barre de progression en elle-même est ajoutée dans une autre boîte <div> imbriquée dans
la précédente :
<div class="progress-bar" role="progressbar" style="width: 25%"
aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">
• La classe utilisée est .progress-bar.
• La largeur d’affichage est indiquée dans le style en ligne : style="width: 25%".
ENSAM RABAT N.ZIDANE BOOTSTRAP 5 Page 109/225
• Pour l’accessibilité, les valeurs d’affichage, minimale et maximale, sont indiquées dans les
attributs aria.
Voici l’affichage obtenu :
Vous pouvez aussi utiliser cette syntaxe où la largeur est indiquée dans la boîte <div> de la barre de
progression, avec la classe .w-X. Le suffixe X indique la largeur. Dans ce cas, il n’est pas
nécessaire d’utiliser l’attribut style :
<div class="progress">
<div class="progress-bar w-25" role="progressbar"
aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div>
3. L’étiquette de la valeur
Vous pouvez afficher la valeur de la barre de progression sous la forme d’une étiquette en indiquant
cette valeur comme contenu de la boîte <div> de la barre de progression.
Voici le code à utiliser :
<div class="progress">
<div class="progress-bar" role="progressbar"
style="width: 25%;" aria-valuenow="25" aria-valuemin="0"
aria-valuemax="100">25%</div>
</div>
Voici l’affichage obtenu :
4. La hauteur de la barre
Vous pouvez spécifier la hauteur, c’est-à-dire l’épaisseur de la barre de progression, avec
l’attribut style appliqué au conteneur de la barre.
Voici deux exemples, avec des hauteurs fixées à 10 pixels et à 40 pixels :
<div class="progress" style="height: 10px;">
<div class="progress-bar" role="progressbar" style="width: 25%;"
aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">25%</div>
</div>
<div class="progress" style="height: 40px;">
1. L’objectif
Bootstrap nous propose une élégante liste d’éléments <ul>, avec la classe .list-group. Vous pouvez
afficher ce que vous voulez dans cette liste : texte, liens...
Le dossier à télécharger pour ces exemples est nommé 08-Interface-04.
2. Une liste simple
Premier exemple simple : une liste de texte. Tous les items <li> sont affichés les uns sous les autres.
Le code utilisé :
<ul class="list-group">
<li class="list-group-item">Cras justo odio</li>
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item">Morbi leo risus</li>
<li class="list-group-item">Porta ac consectetur ac</li>
<li class="list-group-item">Vestibulum at eros</li>
</ul>
L’affichage de cette liste simple :
p
7. Liste sans bordure
</div>
</div>
<div class="col-8">
<div class="tab-content" id="nav-tabContent">
<div class="tab-pane fade show active"
id="list-fusce" role="tabpanel" aria-labelledby=
"list-fusce-list"><strong>Fusce dapibus</strong> tellus ac cursus
commodo...</div>
<div class="tab-pane fade" id="list-nullam"
role="tabpanel" aria-labelledby="list-nullam-list"><strong>Nullam
quis</strong> risus eget urna mollis...</div>
<div class="tab-pane fade" id="list-donec"
role="tabpanel" aria-labelledby="list-donec-list"><strong>Donec id
elit</strong> non mi porta...</div>
<div class="tab-pane fade" id="list-morbi"
role="tabpanel" aria-labelledby="list-morbi-list"><strong>Morbi leo
risus</strong> porta ac consectetur ac...</div>
</div>
</div>
</div>
Étudions cette structure :
• Nous avons une ligne dans la grille Bootstrap : <div class="row mt-4">. Cette ligne possède
la classe supplémentaire .mt-4 pour avoir une marge supplémentaire en haut de la
boîte <div>, afin d’avoir plus d’espace par rapport à la ligne précédente.
• La première colonne est alignée sur 4 colonnes : <div class="col-4">. La deuxième
colonne est alignée sur 8 colonnes : <div class="col-8">.
• La première colonne contient la liste des items dans une boîte : <div class="list-group"
id="list-tab" role="tablist">
Voici l’affichage obtenu lorsque l’utilisateur a cliqué sur le lien du deuxième item :
1. L’objectif
Les cartes, cards en anglais, permettent d’afficher des informations produit avec, par exemple, une
image d’illustration et du texte d’information. Vous avez la possibilité de structurer le texte avec des
en-têtes et des pieds de page.
Le dossier à télécharger pour ces exemples est nommé 08-Interface-05.
2. Une carte simple
Pour ce premier exemple, nous allons afficher une carte simple avec une illustration et un texte
d’information.
Voici le code utilisé :
<div class="card" style="width: 300px;">
<img class="card-img-top" src="dorsoduro-01.jpg" alt="Santa Maria della Salute">
<div class="card-body">
<h5 class="card-title">Venise</h5>
<h6 class="card-subtitle">Le Dorsoduro</h6>
<p class="card-text">La basilique Santa Maria<br> della Salute</p>
</div>
</div>
Voici l’affichage obtenu :
1. L’objectif
Les bulles d’aide sont des éléments très communs dans les interfaces d’administration des CMS
notamment. Cela permet aux utilisateurs d’avoir une aide contextuelle sur les fonctionnalités de
l’application. Mais bien sûr, vous pouvez utiliser ces bulles d’aide dans les pages web de vos sites.
Le dossier à télécharger pour cet exemple est nommé 08-Interface-06.
2. Les paramètres techniques
Voici l’affichage obtenu pour une bulle d’aide avec une mise en forme HTML :
Nous pouvons aussi insérer des bulles d’aide plus élaborée d’un point de vue mise en forme. Les
remarques techniques précédentes sont toujours valables et indispensables pour cet exemple. Le
dossier à télécharger pour cet exemple est nommé 08-Interface-07.
Voici le code complet utilisé pour cet exemple :
<div class="container">
<div class="row">
<div class="col">
<button type="button" class="btn btn-primary"
data-bs-container="body" data-bs-toggle="popover"
data-bs-placement="right" title="Mollis Fusce Bibendum" data-bs-content=
"Cras justo odio...">Cliquez pour obtenir de l'aide</button>
</div>
</div>
</div>
Le fil d’Ariane
C’est un élément <nav> qui est utilisé. La liste des pages parcourues est placée dans un
élément <ol>, avec la classe .breadcrumb. Chaque page est placée dans un item de la liste, <li>,
avec la classe dédiée .breadcrumb-item. La page active, celle qui est affichée dans le navigateur du
visiteur, a en plus la classe .active.
Dans le fil d’Ariane, le nom des pages visitées s’affiche avec une couleur bleue, la page active est
affichée en gris.
La pagination
1. L’objectif
Lorsque vous avez beaucoup de contenus à afficher dans une seule page, vous avez tout intérêt à
utiliser un système de pagination. Cela va permettre aux visiteurs de savoir qu’il y a encore du
contenu à afficher et ils vont pouvoir se repérer facilement dans les nombreuses pages à visiter.
Ce système de pagination est très fréquent, aussi bien dans les interfaces d’administration des CMS
par exemple, que dans les pages web des sites.
Le dossier à télécharger pour ces exemples est nommé 08-Interface-09.
2. Un fil d’Ariane simple
Pour ce premier exemple, nous allons afficher un fil d’Ariane simple. Voici le code utilisé :
<nav aria-label="Navigation simple">
<ul class="pagination">
<li class="page-item"><a class="page-link" href="#">Précédent</a></li>
Le système de pagination est placé dans un élément <nav>. La liste des pages est placée dans un
élément <ul> avec la classe .pagination pour sa mise en forme. Chaque page est placée dans un
item <li> de la liste, ayant la classe .page-item. Chaque lien est inséré dans un élément <a>, avec la
classe .page-link utilisée pour la mise en forme.
3. Utiliser des icônes
À la place des libellés Précédent et Suivant, vous pouvez utiliser des icônes ou des symboles.
Voici le code de cet exemple :
<nav aria-label="Navigation avec icônes">
<ul class="pagination">
<li class="page-item">
<a class="page-link" href="#" aria-label="Précédent">
<span aria-hidden="true">«</span>
<span class="sr-only">Précédent</span>
</a>
</li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item">
<a class="page-link" href="#" aria-label="Suivant">
<span aria-hidden="true">»</span>
<span class="sr-only">Suivant</span>
</a>
Si vous souhaitez afficher de manière particulière la page active, celle qui est affichée, utilisez cette
syntaxe :
<li class="page-item active">
<span class="page-link">
2
<span class="sr-only">Page active</span>
</span>
</li>
Le bouton de la page active possède un arrière-plan bleu et un texte blanc.
Si vous souhaitez avoir un fil d’Ariane plus grand, utilisez la classe .pagination-lg dans
l’élément <ul> : <ul class="pagination pagination-lg">. La classe .pagination-sm permet d’avoir un
affichage plus petit.
Les accordéons permettent d’afficher beaucoup de contenu dans peu de place dans la page. Le
dossier à télécharger pour ces exemples est nommé 08-Interface-10.
Voici la structure de cet exemple :
<div class="accordion" id="accordeon">
<div class="accordion-item">
<h2 class="accordion-header" id="headingOne">
<button class="accordion-button" type="button"
data-bs-toggle="collapse" data-bs-target="#collapseOne"
aria-expanded="true" aria-controls="collapseOne">Lorem Ipsum</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show"
aria-labelledby="headingOne" data-bs-parent="#accordeon">
<div class="accordion-body">
Fusce dapibus, tellus ac cursus commodo...
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingTwo">
<button class="accordion-button collapsed" type="button"
data-bs-toggle="collapse" data-bs-target="#collapseTwo"
aria-expanded="false" aria-controls="collapseTwo">Fusce dapibus</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse"
aria-labelledby="headingTwo" data-bs-parent="#accordeon">
<div class="accordion-body">
Pellentesque ornare sem lacinia quam...
</div>
1. L’objectif
Les fenêtres modales sont très utilisées dans les interfaces d’administration pour avertir l’utilisateur
d’une action importante. Ces fenêtres apparaissent suite à une action de l’utilisateur, comme par
exemple cliquer sur un bouton de suppression. L’utilisateur ne peut qu’utiliser un élément
d’interaction dans cette fenêtre, avant de faire autre chose. Comme toujours, vous pouvez aussi
utiliser les fenêtres modales dans vos sites web.
Le dossier à télécharger pour ces exemples est nommé 08-Interface-11.
2. Une fenêtre modale simple
Voici le code utilisé pour cette fenêtre modale simple :
<!-- Bouton d'affichage -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal"
data-bs-target="#fenetre1">Etiam Nibh Dolor</button>
<!-- Fenêtre modale -->
Voici l’affichage de la fenêtre, après que l’utilisateur ait cliqué sur le bouton :
Si vous souhaitez avoir une fenêtre modale très large, ajoutez la classe .modal-lg dans la boîte <div
class="modal-dialog modal-lg">.
Par contre, si vous souhaitez avoir une fenêtre modale de petite largeur, utilisez la classe .modal-
sm dans la boîte <div class="modal-dialog modal-lg">.
Avec les mêmes classes que précédemment, vous pouvez colorer ces roues grossissantes.
4. La taille des roues
Avec l’ajout de la classe .spinner-border-sm, vous allez obtenir une roue de petite taille :
<div class="spinner-border spinner-border-sm" role="status">
<span class="visually-hidden">Chargement en cours...</span>
</div>
<div class="row">
<button class="btn btn-primary" type="button" disabled>
<span class="spinner-grow" role="status" aria-hidden="true"></span>
<span class="visually-hidden">Chargement en cours...</span>
</button>
Les notifications
Notez que, par défaut, les notifications sont légèrement transparentes. En effet, elles utilisent la
propriété backdrop-filter qui fait partie du module CSS Filter Effects Module Level
2 (https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty). Ce module est encore à l’état de
brouillon au W3C, donc cette propriété ne sera pas forcément reconnue par tous les navigateurs.
ENSAM RABAT N.ZIDANE BOOTSTRAP 5 Page 147/225
3. Une notification personnalisée
Voici un exemple d’une notification avec un contenu personnalisé :
<div class="toast show" role="alert" aria-live="assertive"
aria-atomic="true">
<div class="toast-header">
<strong class="mr-auto text-primary">Administration</strong>
<small>10 minutes</small>
<button type="button" class="btn-close" data-bs-dismiss="toast"
aria-label="Close"></button>
</div>
<div class="toast-body">
<span class="text-warning">Attention</span>, vous avez
<strong>deux</strong> nouveaux messages dans votre boîte aux lettres.
<br>
<img src="lettre.png">
</div>
</div>
Voici l’affichage obtenu :
Synchroniser le défilement
1. Les objectifs
Dans les pages ayant beaucoup de contenu, les visiteurs apprécient de savoir où ils en sont dans un
sommaire qui est affiché, en fonction du défilement de la page. Ce sommaire peut être une barre de
navigation ou une liste de liens.
Lorsque le visiteur utilisera la barre de défilement, les éléments du menu ou de la liste changeront
d’aspect quand le visiteur arrivera à leurs niveaux.
Vous pouvez télécharger le dossier de ces exemples, nommé 08-Interface-14.
Maintenant toute la structure est bien en place. Utilisons-la. Il faut que l’utilisateur place son
pointeur au-dessus de la zone "écoutée", c’est-à-dire au-dessus du contenu textuel dans cet
exemple. Au fur et à mesure qu’il utilise la barre de défilement, le composant va repérer les
identifiants des titres <h4> et va mettre en évidence le lien associé dans la barre de navigation.
Voici l’affichage obtenu lorsque l’utilisateur a fait défiler le contenu jusqu’à faire apparaître le
titre Equipe :
9. Les boutons
Les boutons sont des éléments d’interface quasi indispensables dans les sites web, mais aussi dans
les interfaces d’administration des applications web. Bootstrap propose une gamme de boutons très
importante ce qui permet des usages multiples. Vous allez insérer des boutons avec la classe .btn.
Notez bien que cette classe peut s’appliquer aux éléments <a>, <input> et <button>, ce qui nous
offre de nombreuses possibilités d’intégration.
Les trois éléments utilisent la classe .btn pour avoir la fonctionnalité de bouton et la classe .btn-
primary pour obtenir l’aspect standard des boutons Bootstrap.
2. Les boutons colorés
Vous pouvez ajouter les classes .btn-couleur pour colorer les boutons. Le suffixe couleur indique la
couleur à appliquer. Les valeurs de couleur sont celles que nous avons vues de nombreuse fois
précédemment.
Voici le code utilisé dans cet exemple :
<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-danger">Danger</button>
<button type="button" class="btn btn-warning">Warning</button>
<button type="button" class="btn btn-info">Info</button>
<button type="button" class="btn btn-light">Light</button>
<button type="button" class="btn btn-dark">Dark</button>
<button type="button" class="btn btn-link">Link</button>
Notez que la classe .btn-link utilise un fond transparent.
Voici l’affichage obtenu :
Vous pouvez insérer des boutons en bloc qui soient responsives et affichés en pleine largeur. Pour
cela, nous allons utiliser des classes « utilitaires » dédiées à la mise en forme.
Le dossier à télécharger pour ces exemples est nommé 09-Boutons-02.
1. Des boutons en pleine largeur
Voyons ce premier exemple :
<div class="col">
<div class="d-grid gap-2">
<button class="btn btn-primary" type="button">Bouton 1</button>
<button class="btn btn-primary" type="button">Bouton 2</button>
<button class="btn btn-primary" type="button">Bouton 3</button>
<button class="btn btn-primary" type="button">Bouton 4</button>
</div>
</div>
Voici l’affichage obtenu sur un écran large :
Les boutons s’adaptent bien à la largeur disponible dans la colonne qui dépend de la largeur de
l’écran de diffusion.
Avec une taille d’écran inférieure au point de rupture, les boutons sont en pleine largeur dans la
colonne :
Vous pouvez regrouper des boutons ayant des fonctionnalités associées. Chaque bouton aura sa
propre action.
Le dossier à télécharger pour cet exemple est nommé 09-Boutons-03.
Voici le code utilisé pour cet exemple :
<div class="btn-toolbar" role="toolbar"
aria-label="Groupe de boutons">
<div class="btn-group me-2" role="group" aria-label="Premier groupe">
<button type="button" class="btn btn-secondary"> Crassus</button>
<button type="button" class="btn btn-secondary"> Justo</button>
<button type="button" class="btn btn-secondary">Odio</button>
<button type="button" class="btn btn-secondary"> Dapibus</button>
</div>
<div class="btn-group me-2" role="group" aria-label="Second groupe">
<button type="button" class="btn btn-secondary"> Facilisis</button>
<button type="button" class="btn btn-secondary"> Egestas</button>
<button type="button" class="btn btn-secondary"> Risus</button>
</div>
<div class="btn-group" role="group" aria-label="Troisième groupe">
<button type="button" class="btn btn-secondary"> Pellent</button>
</div>
</div>
Voici l’affichage initial obtenu :
Après avoir cliqué sur un des boutons (Dapibus dans cet exemple), celui-ci s’affiche avec un fond
plus foncé et un contour :
ENSAM RABAT N.ZIDANE BOOTSTRAP 5 Page 159/225
Le conteneur général du groupe de boutons est la boîte <div class="btn-toolbar" role="toolbar"
aria-label="Groupe de boutons">. Elle possède la classe dédiée .btn-toolbar. Cette barre de bouton
possède trois groupes de boutons qui sont chacun placé dans une boîte <div class="btn-group me-
2" role="group" aria-label= "Premier groupe">. Chaque boîte utilise la classe dédiée .btn-
group. Dans chaque groupe nous avons autant d’éléments <button type="button" class="btn btn-
secondary"> qu’il est nécessaire.
1. L’objectif
Les boutons déroulants permettent d’afficher un menu déroulant suite à un clic sur un bouton. Le
bouton va utiliser les classes .btn et .dropdown-toggle et peuvent s’appliquer soit à un élément <a>,
soit à un élément <button>.
Le dossier à télécharger pour ces exemples est nommé 09-Boutons-04.
2. Un bouton déroulant simple
Voici le code utilisé pour ce premier exemple :
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button"
id="boutonderoulant" data-bs-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
Lorem Ipsum
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Sem Vulputate</a>
<a class="dropdown-item" href="#">Ullamcorper Egestas</a>
<a class="dropdown-item" href="#">Dapibus Tellus </a>
</div>
</div>
Voici l’aperçu initial :
Voici l’affichage du menu déroulé où vous pouvez voir que ce menu est divisé en deux parties :
Étudions la structure.
6. L’orientation du symbole
Par défaut, le symbole du bouton déroulant est un triangle qui pointe vers le bas. La
classe .dropup placée dans le conteneur général permet de faire pointer le triangle vers le haut.
<div class="dropdown dropup">
Voici l’affichage obtenu :
La classe .dropright permet de faire pointer le triangle vers la droite et .dropleft vers la gauche.
7. L’état des items
10. La navigation
Bootstrap vous propose d’insérer des barres de navigation dans vos pages web. Ces barres de
navigation vont utiliser la classe .nav, avec pour chaque item, soit une liste <ul>, soit des
éléments <a>. Notez bien que la classe .nav utilise le module CSS3 Flexbox, donc elle peut
bénéficier de tous les avantages de cette mise en forme et de cette mise en page.
Le dossier à télécharger pour ces exemples est nommé 10-Navigation-01.
Les alignements
Par défaut la barre de navigation est alignée sur la gauche de son conteneur. Comme la
classe .nav utilise Flexbox, nous pouvons modifier l’alignement.
La classe supplémentaire .justify-content-center appliquée à l’élément <nav> permet de centrer la
barre de navigation : <nav class="nav justify-content-center">.
Voici l’affichage obtenu, avec une colonne ayant une bordure pour mieux visualiser l’alignement :
Comme la classe .nav est basée sur Flexbox, nous pouvons créer des barres de navigation qui
s’adaptent selon la taille de l’écran.
Voici le code utilisé pour cet exemple :
<nav class="nav nav-pills flex-column flex-sm-row">
<a class="nav-link active" href="#">Lorem</a>
<a class="nav-link" href="#">Ipsum</a>
<a class="nav-link" href="#">Adipiscing</a>
<a class="nav-link" href="#">Amet</a>
</nav>
L’élément <nav> utilise la classe .flex-column pour indiquer que par défaut, les éléments enfants
doivent s’afficher en colonne, les uns sous les autres. Puis nous avons la classe .flex-sm-row qui
indique que les éléments doivent s’afficher en ligne pour les petits écrans et plus. C’est donc cette
règle qui s’applique sur les écrans de petite taille et les plus grands. Pour les écrans très petits, de
taille inférieure à 576 pixels, c’est l’affichage vertical qui est utilisé.
Voici l’affichage sur un petit écran et supérieur :
Dans le chapitre précédent, nous avons vu les boutons déroulants, et bien vous pouvez parfaitement
les intégrer dans une barre de navigation.
Voici le code de cet exemple :
<ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link active" href="#">Lorem</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown"
href="#" role="button" aria-haspopup="true" aria-expanded="false">Ipsum</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Ligula</a>
<a class="dropdown-item" href="#">Vulputate</a>
<a class="dropdown-item" href="#">Ullamcorper</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Adipiscing</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Amet</a>
</li>
</ul>
Les menus de navigation de Bootstrap vous permettent d’insérer dans les en-têtes de vos sites web
des menus très élaborés pour que les visiteurs puissent naviguer et atteindre rapidement telle ou
telle page du site. De très nombreuses fonctionnalités pourront être utilisées dans les menus e
navigation afin que l’expérience utilisateur soit la meilleure.
2. Le conteneur général
Toute la structure du menu de navigation est insérée dans un élément <nav>. Cet élément
possède plusieurs classes :
• .navbar permet de mettre en forme le menu de navigation.
• .navbar-expand-lg est la classe qui permet de rendre le menu responsive. Pour des écrans
larges (avec le suffixe lg), le menu est étendu. Pour des tailles d’écran inférieures, le menu
est réduit à un bouton dit "hamburger".
Voici le menu de navigation réduit :
• .navbar-light permet d’avoir une mise en forme avec un jeu de couleurs claires. La
classe .navbar-dark permet d’avoir un jeu de couleurs foncées.
• .bg-light permet d’avoir des arrière-plans clairs.
3. La dénomination du site
Le premier élément affiché est la marque de votre entreprise ou le nom de votre site :
<a class="navbar-brand" href="#">Mon site</a>
Si vous désirez plutôt avoir un logo, utilisez cette syntaxe, avec une image à la place du texte :
<a class="navbar-brand" href="#">
<img src="terre.png" width="30" height="30" alt="">
4. Le menu hamburger
Sur les petits écrans, le menu se réduit à un bouton. Ce bouton est nommé "hamburger" par les
designers, du fait de son aspect usuel avec ces trois traits horizontaux qui font penser aux couches
d’un hamburger !
Ce bouton est inséré avec un élément <button> ayant toutes les classes CSS nécessaires pour son
affichage et tous les attributs aria pour l’accessibilité des sites web.
<button class="navbar-toggler" type="button" data-bs-toggle="collapse"
data-bs-target="#menuprincipal" aria-controls="menuprincipal"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
5. Le menu de navigation
Le menu de navigation est inséré dans une boîte <div>. Cette boîte possède un
identifiant, id="menuprincipal", qui est repris dans le bouton hamburger : data-bs-
target="#menuprincipal" aria-controls="menuprincipal".
Pour sa mise en forme ce menu utilise deux classes Bootstrap.
<div class="collapse navbar-collapse" id="menuprincipal">
6. Les items du menu
Nous retrouvons ici la même structure vue précédemment pour les barres de navigation. Tous les
items du menu de navigation sont placés dans une liste <ul> ayant des classes pour sa mise en
forme : <ul class="navbar-nav me-auto mb-2 mb-lg-0">. Chaque item est placé dans un item de
liste <li>, avec à nouveau des classes utilisées pour la mise en forme des items.
7. Le champ de recherche
Le champ de recherche n’est pas inséré dans la liste <ul>, mais dans un
élément <form> classique, avec des classes spécifiques pour sa mise en forme.
1. Insérer un texte
Vous pouvez parfaitement insérer du texte dans un menu de navigation. Il vous suffit d’insérer là où
vous le souhaitez un élément <span> avec la classe .navbar-text.
Bootstrap vous propose une série de règles CSS qui permettent de mettre en forme des éléments
d’interface, comme des bordures, des jeux de couleurs, des flottements de boîtes, d’alignement
vertical...2
Les bordures
Bootstrap propose plusieurs classes pour ajouter des bordures simples ou colorées aux éléments
HTML voulus.
Les exemples de ce titre sont à télécharger dans le dossier nommé 12-Utilitaires-01.
1. Ajouter une bordure
La classe .border permet d’ajouter une bordure à tous les côtés d’un élément.
Voici le code de cet exemple très simple :
<div class="border" style="width: 300px;">
Integer posuere...
ENSAM RABAT N.ZIDANE BOOTSTRAP 5 Page 175/225
</div>
Voici l’affichage obtenu :
Le flottement
La technique des boîtes flottantes a longtemps été utilisée pour créer des mises en page, mais cette
technique est obsolète avec l’avènement du module CSS 3 Flexbox. Actuellement le flottement est
utilisé pour ce pour quoi il est fait, à savoir habiller une image par du texte, en faisant flotter
l’image à gauche ou à droite, dans son élément parent.
L’exemple de ce titre est à télécharger dans le dossier nommé 12-Utilitaires-02.
1. Appliquer un flottement
Bootstrap vous propose deux classes pour appliquer un flottement. La classe .float-start applique un
flottement à gauche et .float-end, à droite.
Voici le code de cet exemple simple :
Nous avons déjà de nombreuses fois utilisé les jeux de couleurs de Bootstrap. Ces couleurs
s’utilisent dans des classes, la plupart du temps en tant que suffixe.
Pour associer une couleur à du texte, il faut utiliser la classe .text-couleur, où le
suffixe couleur indique la couleur voulue. Pour mettre un arrière-plan en couleur, la classe à utiliser
est .bg-couleur.
Voici les couleurs de Bootstrap :
• primary : couleur bleue, #007bff.
• secondary : couleur gris-foncée, #6c757d.
• success : couleur verte, #28a745.
• danger : couleur verte, #dc3545.
• success : couleur verte, #28a745.
• warning : couleur jaune, #ffc107.
• info : couleur bleue-verte, #17A2B4.
• light : couleur grise très claire, #f8f9fa.
• dark : couleur grise foncée, #343a40.
• white : couleur blanche, #fffff.
Voici un exemple, à télécharger dans le dossier nommé 12-Utilitaires-03, avec une couleur
d’arrière-plan et pour le texte :
<div class="mb-2 bg-primary text-warning">.bg-primary</div>
<div class="mb-2 bg-secondary text-white">.bg-secondary</div>
<div class="mb-2 bg-success text-primary">.bg-success</div>
<div class="mb-2 bg-danger text-light">.bg-danger</div>
<div class="mb-2 bg-warning text-dark">.bg-warning</div>
<div class="mb-2 bg-info text-white">.bg-info</div>
<div class="mb-2 bg-light text-dark">.bg-light</div>
<div class="mb-2 bg-dark text-info">.bg-dark</div>
<div class="mb-2 bg-white text-danger">.bg-white</div>
Voilà l’affichage obtenu :
Ajouter de la transparence
Les exemples de cette section sont à télécharger dans le dossier nommé 12-Utilitaires-07. Notez
qu’un style a été ajouté, afin d’encadrer les boîtes utilisées, pour mieux visualiser l’application des
classes.
Les trois boîtes <div> sont « collées », il n’y a pas d’espace entre elles. Pour ajouter un espace entre
ces trois boîtes, nous pouvons utiliser la classe .gap-valeur, en indiquant une valeur allant de 0 à 5,
comme précédemment.
Voici le code modifié :
<div class="d-grid gap-4">
<div class="p-2 bg-light border">Donec ullamcorper nulla non metus
auctor fringilla.</div>
<div class="p-2 bg-light border">Sed posuere consectetur est at
lobortis.</div>
<div class="p-2 bg-light border">Ut fermentum massa justo sit amet
risus.</div>
</div>
Voici l’affichage final obtenu :
1. Les alignements
Les exemples de ce titre sont à télécharger dans le dossier nommé 12-Utilitaires-10.
Bootstrap nous propose plusieurs classes pour aligner le texte :
• .text-start pour un alignement à gauche.
• .text-center pour un alignement centré.
• .text-end pour un alignement à droite.
Voici le code de ces exemples :
<div class="col-4">
<p class="text-start">Donec ullamcorper nulla...</p>
</div>
<div class="col-4">
<p class="text-center">Sed posuere consectetur...</p>
</div>
<div class="col-4">
<p class="text-end">Ut fermentum massa justo...</p>
</div>
Vous pouvez aussi décider qu’un alignement ne soit appliqué qu’en fonction d’une taille d’écran
spécifié. Pour cela il suffit d’ajouter les valeurs connues des points de rupture : lg, md, sm…
Voici le code de ces deux exemples :
<div class="col-6">
<p class="text-md-center">Donec ullamcorper nulla...</p>
</div>
<div class="col-6">
<p class="text-sm-end">Sed posuere consectetur...</p>
</div>
Voici l’affichage obtenu sur un écran large : les alignements sont bien centrés et à droite.
Voici l’affichage obtenu sur un écran plus petit : les alignements sont à gauche, par défaut.
2. La hauteur de ligne
Les exemples de cette section sont à télécharger dans le dossier nommé 12-Utilitaires-11.
Vous pouvez modifier la valeur de l’interligne avec la classe .lh-valeur. Le suffixe valeur peut
prendre les valeurs suivantes : 1, sm, base et lg.
Voici les règles CSS appliquées :
.lh-1 {
line-height: 1 !important;
}
.lh-base {
line-height: 1.5 !important;
}
.lh-lg {
line-height: 2 !important;
}
Voici le code utilisé pour ces exemples :
<div class="col">
<p>Donec ullamcorper nulla non metus auctor fringilla...</p>
<p class="lh-1">Donec ullamcorper nulla non metus..</p>
<p class="lh-sm">Donec ullamcorper nulla non metus..</p>
<p class="lh-base">Donec ullamcorper nulla non metus..</p>
<p class="lh-lg">Donec ullamcorper nulla non metus..</p>
</div>
Voici l’affichage obtenu :
Pour modifier la taille des caractères, utilisez les classes suivantes fs-valeur. Le suffixe valeur va
de 1 à 6 et permet d’obtenir une taille de caractères similaire à celles des en-têtes <h1> à <h6>.
Voici le code de ces exemples :
<p>Lorem ipsum dolor sit amet, <span class="fs-1">consectetur adipiscing
elit</span>. Aenean vel dolor at nisi interdum commodo. Curabitur est urna,
<span class="fs-1">venenatis ac mattis quis, volutpat a nisi</span>. Duis
molestie sapien id orci cursus, <span class="fs-2">vitae hendrerit risus
egestas</span>. Donec porta, mauris ac varius viverra, nisl est venenatis
magna, vitae aliquam diam ipsum non sapien. <span class="fs-3">Vestibulum
eu rutrum diam</span>. Ut placerat non augue in finibus. <span class="
fs-4">Aliquam a finibus augue, id commodo odio</span>. Quisque facilisis
metus vel vulputate varius. Nullam blandit porta bibendum. <span class="
fs-5">Vivamus ante felis, egestas et lectus at</span>, maximus iaculis
ligula. Nullam pretium dui eu turpis convallis cursus. Donec congue elit
arcu. <span class="fs-6">Nulla in lacus sed orci lacinia dapibus</span>.
Aenean laoreet arcu quis libero semper ullamcorper.</p>
Voici l’affichage obtenu :
.fs-2 {
font-size: calc(1.325rem + 0.9vw) !important;
}
.fs-3 {
font-size: calc(1.3rem + 0.6vw) !important;
}
.fs-4 {
font-size: calc(1.275rem + 0.3vw) !important;
}
.fs-5 {
font-size: 1.25rem !important;
}
.fs-6 {
font-size: 1rem !important;
}
Vous pouvez aussi appliquer des soulignés (classe .text-decoration-underline), des barrés
(classe .text-decoration-line-through) et utiliser le style de caractères à chasse fixe (classe .font-
monospace), comme les fontes de type Courrier.
Bootstrap vous propose des templates gratuits en exemple de mise en page. Ces exemples
permettent d’exploiter des composants dans des situations réelles de conception de page web.
Bootstrap propose aussi des thèmes payants qui sont des mises en pages très élaborées pour
concevoir des sites web complets. Voici l’URL des thèmes payants de
Bootstrap : https://themes.getbootstrap.com
Enfin, vous pourrez visualiser des sites très design qui ont été créés avec Bootstrap et qui sont
regroupés dans une galerie de site. Voici l’URL de cette galerie : https://expo.getbootstrap.com
Les templates
Le template Carousel
Maintenant vous pouvez traduire les libellés du menu de navigation, voire ajouter d’autres items si
vous le souhaitez.
C’est dans le premier élément <a> que se trouve le nom Carousel qui pourra être changé pour
afficher le nom du site, le nom de l’entreprise ou tout autre mot que vous souhaitez.
Voici le libellé pour cet exemple :
<a class="navbar-brand" href="#">Venise</a>
Ensuite, dans l’élément <div>, puis dans l’élément <ul>, chaque item du menu est placé dans un
élément <li> et dans un élément <a>. C’est dans ce dernier élément que vous pouvez changer les
libellés.
Voici les liens initiaux :
<a class="nav-link active" aria-current="page" href="#">Home</a>
...
<a class="nav-link" href="#">Link</a>
...
<a class="nav-link disabled">Disabled</a>
Notez bien que le dernier item utilise la classe .disabled. Vous pouvez bien sûr le supprimer.
4. Personnaliser la recherche
Sur la droite du menu de navigation se trouve la recherche, avec le champ de saisie et le bouton de
lancement. Ces deux objets se trouvent dans un élément <form> :
<form class="d-flex">
<input class="form-control me-2" type="search" placeholder="Search"
aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
Vous pouvez personnaliser l’attribut placeholder et le contenu de l’élément <buttom>. Par exemple
<form class="d-flex">
<input class="form-control me-2" type="search" placeholder="Rechercher"
aria-label="Rechercher">
<button class="btn btn-outline-success" type="submit">Rechercher</button>
</form>
Voici l’affichage obtenu sur grand écran :
5. Le carousel
Dans la partie supérieure de l’écran, nous avons le carousel en lui-même, <div id="myCarousel"
class="carousel slide" data-bs-ride="carousel">, avec trois images qui défilent. Ces images sont
placées dans des éléments <svg>.
Donc à vous de placer trois images, ou plus, dans un dossier images que vous devez créer, puis
d’indiquer leur chemin d’accès dans l’attribut src et de renseigner l’attribut alt. Vous devrez bien sûr
adapter les dimensions des images afin d’obtenir un affichage optimal.
Voici les éléments <img> de cet exemple :
8. Le pied de page
Le template se termine par le pied de page qui contient un copyright, des liens et un lien pour
remonter au sommet de la page. Tous ces éléments sont contenus dans un élément <footer> :
<footer class="container">
<p class="float-right"><a href="#">Back to top</a></p>
<p>© 2017-2021 Company, Inc. · <a href="#">Privacy</a>
· <a href="#">Terms</a></p>
</footer>
Voici le code de la personnalisation :
<footer class="container">
<p class="float-end"><a href="#">Haut</a></p>
<p>© 2022 Mes voyages · <a href="#">Equipe</a> ·
<a href="#">Projets</a></p>
</footer>
Vous pouvez personnaliser ce pied de page comme vous le souhaitez. Voici un exemple :
Si vous cliquez sur le menu hamburger, celui-ci affiche l’en-tête, avec deux
sections : About et Contact.
Tout l’affichage central est placé dans un élément <main>. Dans cet élément, le bandeau supérieur
se trouve dans un élément <section>. À vous de personnaliser ce bandeau comme vous le souhaitez.
Voici un exemple :
<section class="py-5 text-center container">
<div class="row py-lg-5">
<div class="col-lg-6 col-md-8 mx-auto">
<h1 class="fw-light">Venise, la Sérénissime</h1>
<p class="lead text-muted">Morbi at est a nisl..</p>
<p>
<a href="#" class="btn btn-primary my-2">Le Grand Canal</a>
<a href="#" class="btn btn-secondary my-2">Les palais</a>
</p>
</div>
</div>
</section>
Si vous êtes "pressé" ou à court d’idées, Bootstrap peut vous aider avec l’achat de thèmes. Ces
thèmes sont prêts à l’emploi, vous aurez juste à les personnaliser selon les besoins de vos projets.
Sur la page d’accueil du site de Bootstrap, cliquez sur le bouton Themes.
Dans la page qui s’affiche, vous avez accès à de très nombreux thèmes mais retenez bien qu’ils sont
tous payants.