Il existe deux approches pour centrer une colonne <div>
dans Bootstrap 3:
Approche 1 (décalages):
La première approche utilise les propres classes de décalage de Bootstrap, donc elle ne nécessite aucun changement de balisage et aucun CSS supplémentaire. La clé est de définir un décalage égal à la moitié de la taille restante de la ligne . Ainsi, par exemple, une colonne de taille 2 serait centrée en ajoutant un décalage de 5, c'est(12-2)/2
.
Dans le balisage, cela ressemblerait à:
<div class="row">
<div class="col-md-2 col-md-offset-5"></div>
</div>
Maintenant, il y a un inconvénient évident pour cette méthode. Il ne fonctionne que pour la taille des colonnes même , de sorte que .col-X-2
, .col-X-4
, col-X-6
, col-X-8
et col-X-10
sont pris en charge.
Approche 2 (l'ancienne margin:auto
)
Vous pouvez centrer n'importe quelle taille de colonne en utilisant la margin: 0 auto;
technique éprouvée . Il vous suffit de prendre soin du flottant ajouté par le système de grille de Bootstrap. Je recommande de définir une classe CSS personnalisée comme celle-ci:
.col-centered{
float: none;
margin: 0 auto;
}
Vous pouvez maintenant l'ajouter à n'importe quelle taille de colonne et à n'importe quelle taille d'écran, et cela fonctionnera de manière transparente avec la mise en page réactive de Bootstrap:
<div class="row">
<div class="col-lg-1 col-centered"></div>
</div>
Remarque: Avec les deux techniques, vous pouvez ignorer l' .row
élément et placer la colonne au centre de a .container
, mais vous remarquerez une différence minimale dans la taille réelle de la colonne en raison du remplissage dans la classe de conteneur.
Mise à jour:
Puisque v3.0.1 Bootstrap a une classe intégrée nommée center-block
qui utilise margin: 0 auto
, mais qui est manquante float:none
, vous pouvez l'ajouter à votre CSS pour la faire fonctionner avec le système de grille.
.clearfix
ne fonctionnerait pas dans ce cas car il ne supprime pas la propriété float sur les éléments (qui est nécessaire pour centrer à l'aidemargin: 0 auto
), il fait juste envelopper un conteneur tous les éléments flottés à l'intérieurfloat:none;
Le procédé préféré de centrage colonnes consiste à utiliser des « décalages » (ie:
col-md-offset-3
)Exemples de centrage Bootstrap 3.x
Pour les éléments de centrage , il existe une
center-block
classe d'assistance .Vous pouvez également utiliser
text-center
pour centrer le texte (et les éléments en ligne).Démo : http://bootply.com/91632
EDIT - Comme mentionné dans les commentaires,
center-block
fonctionne sur le contenu et lesdisplay:block
éléments de lacolonne, mais ne fonctionnera pas sur la colonne elle-même (col-*
divs) car Bootstrap l'utilisefloat
.Mise à jour 2018
Maintenant avec Bootstrap 4 , les méthodes de centrage ont changé.
text-center
est toujours utilisé pour lesdisplay:inline
élémentsmx-auto
remplacecenter-block
pour centrer lesdisplay:block
élémentsoffset-*
oumx-auto
peut être utilisé pour centrer les colonnes de la grillemx-auto
(marges automatique d'axe x) se concentrerontdisplay:block
ou desdisplay:flex
éléments qui ont une largeur définie , (%
,vw
,px
, etc ..). Flexbox est utilisé par défaut sur les colonnes de la grille, il existe donc également différentes méthodes de centrage de Flexbox.Demo Bootstrap 4 Centrage horizontal
Pour le centrage vertical dans BS4, voir https://stackoverflow.com/a/41464397/171456
la source
text-center
détail - qu'aucune des autres réponses n'a fourni. Celui-ci obtient mon vote.float:none;
Maintenant, Bootstrap 3.1.1 fonctionne avec
.center-block
, et cette classe d'assistance fonctionne avec le système de colonnes.Bootstrap 3 Helper Class Center .
Veuillez vérifier cette DÉMO jsfiddle :
Centre de colonne de ligne à l'
col-center-block
aide de la classe d'assistance.la source
float:none
en m'assurant que le bloc central div a lestyle="width : ?px"
style qui lui est appliqué. Par exemple une largeur d'image. Fonctionne avec 3.2.2Ajoutez simplement ce qui suit à votre fichier CSS personnalisé. La modification directe des fichiers CSS Bootstrap n'est pas recommandée et annule votre capacité à utiliser un CDN .
Pourquoi?
Bootstrap CSS (version 3.7 et inférieure) utilise la marge: 0 auto; , mais il est remplacé par la propriété float du conteneur de taille.
PS :
Après avoir ajouté cette classe, n'oubliez pas de définir les classes dans le bon ordre.
la source
3.3.7
et c'est la seule méthode qui fonctionne pour moi!!important
soit nécessaireBootstrap 3 a maintenant une classe intégrée pour cela
.center-block
Si vous utilisez toujours 2.X, ajoutez-le simplement à votre CSS.
la source
float:none;
Mon approche pour centrer les colonnes consiste à utiliser
display: inline-block
pour les colonnes ettext-align: center
pour le parent du conteneur.Il vous suffit d'ajouter la classe CSS «centrée» au fichier
row
.HTML:
CSS:
JSFiddle: http://jsfiddle.net/steyffi/ug4fzcjd/
la source
Amorcer version 3 de a une classe .text-center.
Ajoutez simplement cette classe:
Il chargera simplement ce style:
Exemple:
la source
Avec Bootstrap v4, cela peut être accompli simplement en ajoutant
.justify-content-center
à la.row
<div>
https://getbootstrap.com/docs/4.0/utilities/flex/#justify-content
la source
Cela marche. Un moyen hacké probablement, mais ça marche bien. Il a été testé pour réactif (Y).
la source
img
peut être défini comme un bloc..centered img { display: inline; }
à votre réponse et cela mériterait plutôt un vote positif.la source
Pour centrer la colonne, nous devons utiliser le code ci-dessous. les cols sont des éléments flottants en plus de margin auto. Nous allons également le mettre à flotter aucun,
Pour centrer le col-lg-1 ci-dessus avec la classe de centré, nous écrirons:
Pour centrer le contenu à l'intérieur du div, utilisez
text-align:center
,Si vous souhaitez le centrer uniquement sur le bureau et sur un écran plus grand, pas sur un mobile, utilisez la requête multimédia suivante.
Et pour centrer le div uniquement sur la version mobile, utilisez le code ci-dessous.
la source
Définissez simplement votre colonne qui affiche le contenu sur col-xs-12 (mobile-first ;-) et configurez le conteneur uniquement pour contrôler la largeur de votre contenu centré, donc:
Pour une démonstration, voir http://codepen.io/Kebten/pen/gpRNMe :-)
la source
Une autre approche de compensation consiste à avoir deux lignes vides, par exemple:
la source
Vous pouvez utiliser
text-center
pour la ligne et vous assurer que les divisions internes ontdisplay:inline-block
(avec pasfloat
).Comme:
Et CSS:
Le violon: http://jsfiddle.net/DTcHh/3177/
la source
Avec bootstrap 4, vous pouvez simplement essayer
justify-content-md-center
comme il est mentionné icila source
Ce n'est probablement pas la meilleure réponse, mais il existe une autre solution créative à cela. Comme l'a souligné koala_dev, le décalage de colonne ne fonctionne que pour les tailles de colonne paires. Cependant, en imbriquant les lignes, vous pouvez également centrer les colonnes inégales.
Pour coller à la question d'origine où vous souhaitez centrer une colonne de 1 à l'intérieur d'une grille de 12.
Par exemple:
Voir ce violon , veuillez noter que vous devez augmenter la taille de la fenêtre de sortie afin de voir aussi le résultat, sinon les colonnes seront bouclées.
la source
Ce n'est pas mon code, mais cela fonctionne parfaitement (testé sur Bootstrap 3) et je n'ai pas besoin de jouer avec col-offset.
Démo:
la source
Nous pouvons y parvenir en utilisant le mécanisme de disposition de table:
Le mécanisme est:
L'exemple de démonstration est ici
la source
Ajoutez l'extrait suivant dans votre .row ou votre .col. C'est pour Bootstrap 4 *.
la source
Comme koala_dev l'a utilisé dans son approche 1, je préférerais la méthode offset au lieu du bloc central ou des marges qui a une utilisation limitée, mais comme il l'a mentionné:
Cela peut être résolu en utilisant l'approche suivante pour les colonnes impaires.
la source
Vous pouvez utiliser la solution flexbox très flexible pour votre Bootstrap.
peut centrer votre colonne.
Découvrez flex .
la source
Parce que je n'ai jamais besoin de centrer uniquement un seul
.col-
dans un.row
, j'ai défini la classe suivante sur l'encapsulation.row
de mes colonnes cible.Exemple
la source
Pour ceux qui cherchent à centrer les éléments de colonne sur l'écran lorsque vous n'avez pas le nombre exact pour remplir votre grille, j'ai écrit un petit morceau de JavaScript pour retourner les noms de classe:
Si vous avez 5 éléments et que vous souhaitez en avoir 3 par ligne sur un
md
écran, procédez comme suit:Gardez à l'esprit que le deuxième argument doit être divisible par 12.
la source
Pour centrer plusieurs colonnes dans une ligne Bootstrap - et le nombre de colonnes est impair, ajoutez simplement cette
css
classe à toutes les colonnes de cette ligne:Donc, dans votre HTML, vous avez quelque chose comme:
la source
Essaye ça
Vous pouvez utiliser d' autres
col
aussi bien quecol-md-2
, etc.la source
Je suggère simplement d'utiliser la classe
text-center
:la source
Essayez ce code.
Ici, j'ai utilisé col-lg-1, et le décalage devrait être de 10 pour bien centrer la div sur les gros appareils. Si vous en avez besoin pour vous concentrer sur des appareils moyens à grands, changez simplement le lg en md et ainsi de suite.
la source
Solution Bootstrap 4 :
la source
Si vous mettez cela sur votre ligne, toutes les colonnes à l'intérieur seront centrées:
la source
Pour être plus précis, le système de grille de Bootstrap contient 12 colonnes et pour centrer n'importe quel contenu, disons, par exemple, que le contenu occupe une colonne. Il faudra occuper deux colonnes de la grille de Bootstrap et placer le contenu sur la moitié des deux colonnes occupées.
'col-xs-offset-5' indique au système de grille où commencer à placer le contenu.
'col-xs-2' indique au système de grille combien de colonnes restantes le contenu doit occuper.
«centré» sera une classe définie qui centrera le contenu.
Voici à quoi ressemble cet exemple dans le système de grille de Bootstrap.
Colonnes:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
....... offset ....... .data. .......non utilisé........
la source