Système de grille
Utilisez notre puissante grille flexbox mobile-first pour créer des mises en page de toutes formes et tailles grâce à un système à douze colonnes, cinq niveaux réactifs par défaut, des variables et mixins Sass et des dizaines de classes prédéfinies.
Le système de grille de Bootstrap utilise une série de conteneurs, de lignes et de colonnes pour mettre en page et aligner le contenu. Il est construit avec flexbox et est entièrement réactif. Vous trouverez ci-dessous un exemple et un examen approfondi de la façon dont la grille se rassemble.
Nouveau ou peu familier avec flexbox ? Lisez ce guide CSS Tricks flexbox pour le contexte, la terminologie, les directives et les extraits de code.
L'exemple ci-dessus crée trois colonnes de largeur égale sur des appareils petits, moyens, grands et très grands à l'aide de nos classes de grille prédéfinies. Ces colonnes sont centrées dans la page avec le parent .container
.
En décomposant, voici comment cela fonctionne :
- Les conteneurs permettent de centrer et de remplir horizontalement le contenu de votre site. À utiliser
.container
pour une largeur de pixel réactive ou.container-fluid
pourwidth: 100%
toutes les tailles de fenêtres et d'appareils. - Les lignes sont des wrappers pour les colonnes. Chaque colonne a une horizontale
padding
(appelée gouttière) pour contrôler l'espace entre elles. Cecipadding
est ensuite contrecarré sur les lignes avec des marges négatives. De cette façon, tout le contenu de vos colonnes est aligné visuellement sur le côté gauche. - Dans une disposition en grille, le contenu doit être placé dans des colonnes et seules les colonnes peuvent être des enfants immédiats des lignes.
- Grâce à flexbox, les colonnes de grille sans spécification
width
seront automatiquement disposées en colonnes de largeur égale. Par exemple, quatre instances de.col-sm
auront chacune automatiquement une largeur de 25 % à partir du petit point d'arrêt et plus. Voir la section des colonnes de mise en page automatique pour plus d'exemples. - Les classes de colonnes indiquent le nombre de colonnes que vous souhaitez utiliser sur les 12 possibles par ligne. Donc, si vous voulez trois colonnes de largeur égale, vous pouvez utiliser
.col-4
. - Les colonnes
width
sont définies en pourcentages, elles sont donc toujours fluides et dimensionnées par rapport à leur élément parent. - Les colonnes ont une horizontale
padding
pour créer les gouttières entre les colonnes individuelles, cependant, vous pouvez supprimer lesmargin
lignes et lespadding
colonnes avec.no-gutters
sur le.row
. - Pour rendre la grille réactive, il existe cinq points d'arrêt de grille, un pour chaque point d' arrêt réactif : tous les points d'arrêt (extra petit), petit, moyen, grand et très grand.
- Les points d'arrêt de la grille sont basés sur des requêtes multimédias de largeur minimale, ce qui signifie qu'ils s'appliquent à ce point d'arrêt et à tous ceux qui le précèdent (par exemple,
.col-sm-4
s'appliquent aux appareils petits, moyens, grands et très grands, mais pas au premier point d'xs
arrêt). - Vous pouvez utiliser des classes de grille prédéfinies (comme
.col-4
) ou des mixins Sass pour un balisage plus sémantique.
Soyez conscient des limitations et des bogues autour de flexbox , comme l ' impossibilité d' utiliser certains éléments HTML comme conteneurs flex .
Alors que Bootstrap utilise em
s ou rem
s pour définir la plupart des tailles, px
s est utilisé pour les points d'arrêt de grille et les largeurs de conteneur. Cela est dû au fait que la largeur de la fenêtre d'affichage est en pixels et ne change pas avec la taille de la police .
Découvrez comment les aspects du système de grille Bootstrap fonctionnent sur plusieurs appareils avec un tableau pratique.
Très petit <576px |
Petit ≥576px |
Moyen ≥768px |
Grand ≥992px |
Très grand ≥1200px |
|
---|---|---|---|---|---|
Largeur maximale du conteneur | Aucun (auto) | 540px | 720px | 960px | 1140px |
Préfixe de classe | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
# de colonnes | 12 | ||||
Largeur de gouttière | 30px (15px de chaque côté d'une colonne) | ||||
Emboîtable | Oui | ||||
Ordre des colonnes | Oui |
Utilisez des classes de colonnes spécifiques aux points d'arrêt pour un dimensionnement facile des colonnes sans classe numérotée explicite comme .col-sm-6
.
Par exemple, voici deux dispositions de grille qui s'appliquent à chaque appareil et fenêtre d'affichage, de xs
à xl
. Ajoutez n'importe quel nombre de classes sans unité pour chaque point d'arrêt dont vous avez besoin et chaque colonne aura la même largeur.
Les colonnes de largeur égale peuvent être divisées en plusieurs lignes, mais il y avait un bogue Safari flexbox qui empêchait cela de fonctionner sans explicite flex-basis
ou border
. Il existe des solutions de contournement pour les anciennes versions de navigateur, mais elles ne devraient pas être nécessaires si vous êtes à jour.
La mise en page automatique des colonnes de la grille flexbox signifie également que vous pouvez définir la largeur d'une colonne et que les colonnes sœurs se redimensionnent automatiquement autour d'elle. Vous pouvez utiliser des classes de grille prédéfinies (comme indiqué ci-dessous), des mixins de grille ou des largeurs en ligne. Notez que les autres colonnes seront redimensionnées quelle que soit la largeur de la colonne centrale.
Utilisez col-{breakpoint}-auto
des classes pour dimensionner les colonnes en fonction de la largeur naturelle de leur contenu.
Créez des colonnes de même largeur qui s'étendent sur plusieurs lignes en insérant un .w-100
à l'endroit où vous souhaitez que les colonnes se divisent en une nouvelle ligne. Rendez les pauses réactives en mélangeant le .w-100
avec des utilitaires d'affichage réactifs .
La grille de Bootstrap comprend cinq niveaux de classes prédéfinies pour créer des mises en page réactives complexes. Personnalisez la taille de vos colonnes sur des appareils très petits, petits, moyens, grands ou très grands comme bon vous semble.
Pour les grilles identiques du plus petit appareil au plus grand, utilisez les classes .col
et . .col-*
Spécifiez une classe numérotée lorsque vous avez besoin d'une colonne de taille particulière ; sinon, n'hésitez pas à vous en tenir à .col
.
À l' aide d'un seul ensemble de .col-sm-*
classes, vous pouvez créer un système de grille de base qui commence empilé et devient horizontal au petit point d'arrêt ( sm
).
Vous ne voulez pas que vos colonnes s'empilent simplement dans certains niveaux de grille ? Utilisez une combinaison de différentes classes pour chaque niveau selon vos besoins. Voir l'exemple ci-dessous pour une meilleure idée de la façon dont tout cela fonctionne.
Utilisez les utilitaires d'alignement Flexbox pour aligner verticalement et horizontalement les colonnes.
Les gouttières entre les colonnes dans nos classes de grille prédéfinies peuvent être supprimées avec .no-gutters
. Cela supprime le margin
s négatif .row
et l'horizontal padding
de toutes les colonnes enfants immédiates.
Voici le code source pour créer ces styles. Notez que les remplacements de colonne ne concernent que les premières colonnes enfants et sont ciblés via l' attribut selector . Bien que cela génère un sélecteur plus spécifique, le rembourrage des colonnes peut encore être personnalisé avec des utilitaires d'espacement .
Besoin d'un design bord à bord ? Supprimez le parent .container
ou .container-fluid
.
En pratique, voici à quoi cela ressemble. Notez que vous pouvez continuer à l'utiliser avec toutes les autres classes de grille prédéfinies (y compris les largeurs de colonne, les niveaux réactifs, les réorganisations, etc.).
Si plus de 12 colonnes sont placées dans une seule ligne, chaque groupe de colonnes supplémentaires sera, comme une unité, enveloppé sur une nouvelle ligne.
Puisque 9 + 4 = 13 > 12, cette div à 4 colonnes est enveloppée sur une nouvelle ligne comme une unité contiguë.
Les colonnes suivantes continuent le long de la nouvelle ligne.
Briser les colonnes sur une nouvelle ligne dans flexbox nécessite un petit hack : ajoutez un élément à l' width: 100%
endroit où vous souhaitez envelopper vos colonnes sur une nouvelle ligne. Normalement, cela est accompli avec plusieurs .row
s, mais toutes les méthodes d'implémentation ne peuvent pas en tenir compte.
Vous pouvez également appliquer cette pause à des points d'arrêt spécifiques avec nos utilitaires d'affichage réactifs .
Utilisez .order-
des classes pour contrôler l' ordre visuel de votre contenu. Ces classes sont réactives, vous pouvez donc définir le order
par point d'arrêt (par exemple, .order-1.order-md-2
). Inclut la prise en charge de 1
l' 12
ensemble des cinq niveaux de grille.
Il existe également des classes responsive .order-first
et qui modifient la d'un élément en appliquant et ( ), respectivement. Ces classes peuvent également être mélangées avec les classes numérotées selon les besoins..order-last
order
order: -1
order: 13
order: $columns + 1
.order-*
Vous pouvez décaler les colonnes de la grille de deux manières : nos .offset-
classes de grille réactives et nos utilitaires de marge . Les classes de grille sont dimensionnées pour correspondre aux colonnes tandis que les marges sont plus utiles pour les mises en page rapides où la largeur du décalage est variable.
Déplacez les colonnes vers la droite à l'aide des .offset-md-*
classes. Ces classes augmentent la marge gauche d'une colonne par *
colonnes. Par exemple, .offset-md-4
se déplace .col-md-4
sur quatre colonnes.
Outre l'effacement des colonnes aux points d'arrêt réactifs, vous devrez peut-être réinitialiser les décalages. Voyez ceci en action dans l'exemple de grille .
Avec le passage à flexbox dans la v4, vous pouvez utiliser des utilitaires de marge tels .mr-auto
que forcer les colonnes sœurs à s'éloigner les unes des autres.
Pour imbriquer votre contenu avec la grille par défaut, ajoutez un nouveau .row
et un ensemble de colonnes dans une colonne .col-sm-*
existante . .col-sm-*
Les lignes imbriquées doivent inclure un ensemble de colonnes qui totalisent jusqu'à 12 colonnes ou moins (il n'est pas nécessaire que vous utilisiez les 12 colonnes disponibles).
Lorsque vous utilisez les fichiers source Sass de Bootstrap, vous avez la possibilité d'utiliser des variables Sass et des mixins pour créer des mises en page personnalisées, sémantiques et réactives. Nos classes de grille prédéfinies utilisent ces mêmes variables et mixins pour fournir toute une suite de classes prêtes à l'emploi pour des mises en page réactives rapides.
Les variables et les cartes déterminent le nombre de colonnes, la largeur de la gouttière et le point de requête multimédia auquel commencer les colonnes flottantes. Nous les utilisons pour générer les classes de grille prédéfinies documentées ci-dessus, ainsi que pour les mixins personnalisés répertoriés ci-dessous.
Les mixins sont utilisés conjointement avec les variables de grille pour générer du CSS sémantique pour les colonnes de grille individuelles.
Vous pouvez modifier les variables avec vos propres valeurs personnalisées ou simplement utiliser les mixins avec leurs valeurs par défaut. Voici un exemple d'utilisation des paramètres par défaut pour créer une mise en page à deux colonnes avec un espace entre les deux.
En utilisant nos variables et cartes Sass de grille intégrées, il est possible de personnaliser complètement les classes de grille prédéfinies. Modifiez le nombre de niveaux, les dimensions de la requête multimédia et la largeur des conteneurs, puis recompilez.
Le nombre de colonnes de la grille peut être modifié via les variables Sass. $grid-columns
est utilisé pour générer les largeurs (en pourcentage) de chaque colonne individuelle tandis que $grid-gutter-width
définit la largeur des gouttières de colonne.
Au-delà des colonnes elles-mêmes, vous pouvez également personnaliser le nombre de niveaux de grille. Si vous ne vouliez que quatre niveaux de grille, vous mettriez à jour le $grid-breakpoints
et $container-max-widths
à quelque chose comme ceci :
Lorsque vous apportez des modifications aux variables ou aux cartes Sass, vous devez enregistrer vos modifications et recompiler. Cela produira un tout nouvel ensemble de classes de grille prédéfinies pour les largeurs de colonne, les décalages et l'ordre. Les utilitaires de visibilité réactifs seront également mis à jour pour utiliser les points d'arrêt personnalisés. Assurez-vous de définir les valeurs de grille dans px
(pas rem
, em
, ou %
).