Mise en page Flex (Flexbox) de Bootstrap5
Bootstrap5 utilise des classes flex pour contrôler la mise en page.
Flexbox
La plus grande différence entre Bootstrap 3 et Bootstrap 4/5 est que Bootstrap 4/5 utilise flexbox pour la mise en page, au lieu d'utiliser des flottants.
Flexbox est un nouveau mode de mise en page en CSS3, plus adapté au responsive design. Si vous ne comprenez pas encore flex, vous pouvez lire notreCSS3 Flexible Box (Flex Box)Tutoriel
Remarque : IE9 et les versions antérieures ne prennent pas en charge flexbox, donc si vous devez prendre en charge IE8-9, veuillez utiliserBootstrap 3。
L'exemple suivant utilise la classe d-flex pour créer un conteneur flexbox et définit trois éléments flex :
Exemple
Essayez-le »
Vous pouvez utiliser la classe d-inline-flex pour créer un conteneur flexbox qui s'affiche sur la même ligne :
Exemple
Essayez-le »
Horizontal
.flex-rowVous pouvez définir les éléments flex pour qu'ils s'affichent horizontalement, ce qui est la valeur par défaut.
Utilisez.flex-row-reversela classe est utilisée pour définir l'affichage aligné à droite, c'est-à-dire avec.flex-rowla direction opposée.
Exemple
Essayez-le »
Vertical
.flex-columnla classe est utilisée pour définir les éléments flex afin qu'ils s'affichent verticalement,.flex-column-reverseutilisée pour inverser les éléments :
Exemple
Essayez-le »
Justification du contenu
.justify-content-*la classe est utilisée pour modifier la disposition des éléments flex,*Les valeurs autorisées sont :start (par défaut), end, center, between ou around:
Exemple
Essayez-le »
Largeur égale
La classe .flex-fill force chaque élément flex à avoir la même largeur :
Exemple
Essayez-le »
Agrandissement
.flex-grow-1 est utilisé pour définir l'élément afin qu'il utilise l'espace restant. Dans l'exemple suivant, les deux premiers éléments n'occupent que l'espace dont ils ont besoin, et le dernier occupe l'espace restant. :
Exemple
Essayez-le »
Astuce :Utilisez.flex-shrink-1pour définir les règles de rétrécissement des éléments.
Ordre
.orderla classe peut définir l'ordre des éléments flex, de.order-1à.order-12, plus le nombre est petit, plus le poids est élevé (.order-1est placé.order-2avant) :
Exemple
Essayez-le »
Marge
.ms-autola classe peut définir la marge droite de l'élément enfant surauto, i.e.,margin-right: auto!important;,.me-autola classe peut définir la marge gauche de l'élément enfant surauto, i.e.,margin-left: auto!important;:
Exemple
Essayez-le »
Wrap
Vous pouvez utiliser les trois classes suivantes pour faire passer les éléments à la ligne dans un conteneur flex : .flex-nowrap (par défaut), .flex-wrap ou .flex-wrap-reverse. Définissez le conteneur flex sur une seule ligne ou sur plusieurs lignes.
Exemple
Essayez-le »
Alignement du contenu
Nous pouvons utiliser `.align-content-*` pour contrôler la façon dont les éléments enfants sont empilés verticalement. Les valeurs incluent : `.align-content-start` (par défaut), `.align-content-end`, `.align-content-center`, `.align-content-between`, `.align-content-around` et `.align-content-stretch`.
Ces classes sont inefficaces lorsqu'il n'y a qu'une seule ligne d'éléments flex.
Exemple
Essayez-le »
Aligner les éléments
Pour aligner les éléments enfants sur une seule ligne, vous pouvez utiliser.align-items-*classes pour le contrôler. Les valeurs incluent :`.align-items-start`, `.align-items-end`, `.align-items-center`, `.align-items-baseline` et `.align-items-stretch` (par défaut)。
Exemple
Essayez-le »
Alignement individuel
Pour aligner un élément enfant spécifique, vous pouvez utiliser les classes `.align-self-*` pour le contrôler. Les valeurs incluent : `.align-self-start`, `.align-self-end`, `.align-self-center`, `.align-self-baseline` et `.align-self-stretch` (par défaut).
Exemple
Essayez-le »
Classes flex responsives
Nous pouvons définir des classes flex en fonction des différents appareils pour obtenir une mise en page réactive. Le `*` dans le tableau ci-dessous peut être `sm`, `md`, `lg` ou `xl`, correspondant aux petits appareils, aux appareils moyens, aux grands appareils et aux très grands appareils.| Classe | Exemple | Implémentation |
|---|---|---|
| Conteneurs flex | ||
.d-*-flex |
Créer des conteneurs flexbox en fonction des différents appareils à écran | Essayez-le |
.d-*-inline-flex |
Créer des conteneurs flexbox en ligne en fonction des différents appareils à écran | Essayez-le |
| Direction | ||
.flex-*-row |
Afficher les éléments flex horizontalement en fonction des différents appareils à écran | Essayez-le |
.flex-*-row-reverse |
Afficher les éléments flex horizontalement et alignés à droite en fonction des différents appareils à écran | Essayez-le |
.flex-*-column |
Afficher les éléments flex verticalement en fonction des différents appareils à écran | Essayez-le |
.flex-*-column-reverse |
Afficher les éléments flex verticalement dans l'ordre inverse en fonction des différents appareils à écran | Essayez-le |
| Justification du contenu | ||
.justify-content-*-start |
Afficher les éléments flex à la position de début en fonction des différents appareils à écran (alignés à gauche) | Essayez-le |
.justify-content-*-end |
Afficher les éléments flex à la fin en fonction des différents appareils à écran (alignés à droite) | Essayez-le |
.justify-content-*-center |
Centrer les éléments flex dans le conteneur flex en fonction des différents appareils à écran | Essayez-le |
.justify-content-*-between |
Utiliser "between" pour afficher les éléments flex en fonction des différents appareils à écran | Essayez-le |
.justify-content-*-around |
Utiliser "around" pour afficher les éléments flex selon les différents appareils à écran | Essayez-le |
| Largeur égale | ||
.flex-*-fill |
Forcer une largeur égale selon les différents appareils à écran | Essayez-le |
| Agrandissement | ||
.flex-*-grow-0 |
Ne pas autoriser l'agrandissement selon les différents appareils à écran | |
.flex-*-grow-1 |
Autoriser l'agrandissement selon les différents appareils à écran | |
| Rétrécissement | ||
.flex-*-shrink-0 |
Ne pas autoriser le rétrécissement selon les différents appareils à écran | |
.flex-*-shrink-1 |
Autoriser le rétrécissement selon les différents appareils à écran | |
| Wrap | ||
.flex-*-nowrap |
Ne pas enrouler les éléments flex selon les différents appareils à écran | Essayez-le |
.flex-*-wrap |
Enrouler les éléments flex selon les différents appareils à écran | Essayez-le |
.flex-*-wrap-reverse |
Inverser l'enroulement des éléments flex selon les différents appareils à écran | Essayez-le |
| Alignement du contenu | ||
.align-content-*-start |
Empiler les éléments flex à la position de départ selon les différents appareils à écran | Essayez-le |
.align-content-*-end |
Empiler les éléments flex à la position de fin selon les différents appareils à écran | Essayez-le |
.align-content-*-center |
Empiler les éléments flex à la position centrale selon les différents appareils à écran | Essayez-le |
.align-content-*-around |
Empiler les éléments flex en utilisant "around" selon les différents appareils à écran | Essayez-le |
.align-content-*-stretch |
Empiler les éléments flex en les étirant selon les différents appareils à écran | Essayez-le |
| Tri | ||
.order-*-0-12 |
Modifier le tri sur les petits écrans | Essayez-le |
| Alignement des éléments | ||
.align-items-*-start |
Selon l'appareil à écran, afficher les éléments sur la même ligne au début. | Essayez-le |
.align-items-*-end |
Selon l'appareil à écran, afficher les éléments sur la même ligne à la fin. | Essayez-le |
.align-items-*-center |
Selon l'appareil à écran, afficher les éléments sur la même ligne au centre. | Essayez-le |
.align-items-*-baseline |
Selon l'appareil à écran, afficher les éléments de la même ligne au niveau de la ligne de base. | Essayez-le |
.align-items-*-stretch |
Selon l'appareil à écran, étirer la hauteur des éléments et les afficher sur la même ligne. | Essayez-le |
| Alignement d'un seul élément enfant | ||
.align-self-*-start |
Selon l'appareil d'écran, un élément enfant unique au début. | Essayez-le |
.align-self-*-end |
Selon l'appareil d'écran, affichez un élément enfant unique à la fin. | Essayez-le |
.align-self-*-center |
Selon l'appareil d'écran, affichez un élément enfant unique au centre. | Essayez-le |
.align-self-*-baseline |
Selon l'appareil d'écran, afficher un seul élément enfant sur la ligne de base. | Essayez-le |
.align-self-*-stretch |
Selon l'appareil d'écran, étirer un seul élément enfant. | Essayez-le |