Module 2Les composants
Chapitre 5 sur 9
Boutons, alertes, badges et cartes
Boutons, alertes, badges et cartes, sans JavaScript.
- ≈ 110 min
- 4 leçons
- 3 vidéos
- 2 exercices
Module 2Les composants
Chapitre 5 sur 9
Boutons, alertes, badges et cartes, sans JavaScript.
Objectifs
Avec ce chapitre, tu sauras…
Ces quatre composants se retrouvent sur presque chaque page. Ils ne demandent aucun JavaScript, sauf la fermeture d'une alerte.
Leçon 1
<button type="button" class="btn btn-primary">Principal</button>
<button type="button" class="btn btn-outline-primary">Contour</button>
<button type="button" class="btn btn-success btn-lg">Grand</button>
<button type="button" class="btn btn-secondary btn-sm">Petit</button>
<a href="inscription.html" class="btn btn-warning">Un lien qui ressemble à un bouton</a>
<button type="button" class="btn btn-primary" disabled>Désactivé</button>
<div class="d-grid"><button class="btn btn-dark">Pleine largeur</button></div>Tableau: Les classes de bouton
| Classe | Effet |
|---|---|
btn | obligatoire : le style de base |
btn-primary, btn-danger… | couleur pleine |
btn-outline-primary… | contour seulement |
btn-link | apparence de lien |
btn-lg, btn-sm | taille |
disabled (attribut) | bouton désactivé |
btn-group (sur un conteneur) | boutons collés en groupe |
Vidéo · À regarder
ENBootstrap 5 Crash Course
Web Dev Simplified · YouTube
Leçon 2
Vidéo · À regarder
ENBootstrap 5 Crash Course
Web Dev Simplified · YouTube
Leçon 3
Leçon 4
| Classe | Rôle |
|---|---|
card | le conteneur |
card-img-top | image en haut |
card-header / card-footer | en-tête / pied |
card-body | le contenu avec padding |
card-title, card-subtitle, card-text | textes |
h-100 (sur la carte) |
1Quelle classe est obligatoire sur un bouton Bootstrap ?
2Pour un bouton avec seulement un contour :
3Fermer une alerte demande…
4Pour que les cartes d'une ligne aient la même hauteur :
5Pour aller vers une autre page, on utilise…
6visually-hidden…
L'essentiel du chapitre
btn + btn-{couleur} ou btn-outline-{couleur}, btn-lg/btn-sm, d-grid pour la pleine largeur ; <a> pour naviguer, <button> pour agir.alert alert-{couleur} ; refermable avec alert-dismissible fade show + btn-close data-bs-dismiss="alert".badge text-bg-{couleur}, rounded-pill.card, card-img-top, card-body, card-title, card-text, card-footer ; h-100 + mt-auto en grille.| même hauteur que les autres cartes de la ligne |
Vidéo · À regarder
ENBootstrap 5 Crash Course
Web Dev Simplified · YouTube
La classe btn peut se mettre sur un <a> ou un <button>. Le choix dépend du comportement (formation HTML) : navigation vers une autre page → <a href> ; action (envoyer, ouvrir, supprimer) → <button type="...">.
Les boutons (anglais) : variantes, contours, tailles et groupes.
<div class="alert alert-success" role="alert">
<strong>Bravo !</strong> Ton inscription est enregistrée.
</div>
<div class="alert alert-warning alert-dismissible fade show" role="alert">
Ta session expire dans 5 minutes.
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Fermer"></button>
</div>Les attributs data-bs-… (data-bs-dismiss, data-bs-toggle, data-bs-target) relient le HTML au JavaScript de Bootstrap sans écrire une ligne de JS. Ils ne fonctionnent que si bootstrap.bundle.min.js est chargé (chapitre 1).
Les alertes (anglais), dont la version refermable.
<h2>Notifications <span class="badge text-bg-danger">3</span></h2>
<span class="badge rounded-pill text-bg-success">Nouveau</span>
<button class="btn btn-primary position-relative">
Panier
<span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">
2 <span class="visually-hidden">articles</span>
</span>
</button>visually-hidden cache un texte à l'écran tout en le gardant pour les lecteurs d'écran : le badge « 2 » est lu « 2 articles ». C'est l'équivalent Bootstrap de la classe .sr-only vue dans la formation CSS.
<div class="card" style="width: 18rem;">
<img src="images/chefchaouen.webp" class="card-img-top" alt="Ruelle bleue de Chefchaouen">
<div class="card-body">
<h3 class="card-title h5">Week-end à Chefchaouen</h3>
<p class="card-text">Deux jours dans la perle bleue du Rif, guide et riad compris.</p>
<a href="#" class="btn btn-primary">Réserver</a>
</div>
<div class="card-footer text-body-secondary">À partir de 1 200 DH</div>
</div>Tableau: Les parties d'une carte
Affiche une alerte verte refermable avec une icône bi-check-circle, un titre « Message envoyé » en alert-heading et un paragraphe.
Crée une section « Nos offres » avec trois cartes de même hauteur (Starter, Pro, Business) en grille responsive : un card-header avec le nom, le prix en display-6 dans le corps, une liste d'avantages sans puces, et un bouton en bas. La carte Pro a une bordure border-primary et un badge « Populaire ».
<div class="row row-cols-1 row-cols-md-3 g-4">
<div class="col">
<div class="card h-100">
<div class="card-body d-flex flex-column">
<h3 class="card-title h5">Formation HTML</h3>
<p class="card-text">Structurer une page web de zéro.</p>
<a href="#" class="btn btn-primary mt-auto">Découvrir</a>
</div>
</div>
</div>
<!-- deux autres colonnes identiques -->
</div>h-100 donne la même hauteur aux cartes ; d-flex flex-column sur le card-body et mt-auto sur le bouton le poussent tout en bas. C'est exactement la technique Flexbox de la formation CSS (exercice 9.3), écrite en classes.
Les cartes (anglais) : structure, images et cartes en grille.