Centre une colonne en utilisant Twitter Bootstrap 3
Comment centrer une div de taille de la colonne à l'intérieur du conteneur (12 colonnes) dans Twitter Bootstrap 3?
CSS:
.centered {
background-color: red;
}
HTML:
<body class="container">
<div class="col-lg-1 col-offset-6 centered">
<img data-src="holder.js/100x100" alt="" />
</div>
</body>
Je veux un div
, avec une classe .centered
être centré à l'intérieur du conteneur. Je peut utiliser une ligne si il y a plusieurs div
s, mais pour l'instant je veux juste un div
avec la taille d'une colonne centrée à l'intérieur du conteneur (12 colonnes).
Je ne suis pas aussi sûr que l'approche ci-dessus est assez bonne, car l'intention n'est pas de compenser la div
de moitié. Je n'ai pas besoin espaces libres à l'extérieur de la div
et le contenu de la div
diminuer en proportion. Je veux espace vide en dehors de la div pour être distribué uniformément (rétrécir jusqu'à la largeur du conteneur est égale à la colonne).
Vous devez vous connecter pour publier un commentaire.
Il existe deux approches pour centrer une colonne
<div>
dans le Bootstrap 3:Approche 1 (décalages):
La première approche utilise Bootstrap, propre à compenser les classes de sorte qu'il ne nécessite aucun changement dans le balisage et sans supplément de CSS. La clé est de définir un décalage égal à la moitié de la taille de la ligne. Ainsi, par exemple, une colonne de taille 2 serait centré par l'ajout d'un décalage de 5, c'est
(12-2)/2
.Dans le balisage, ce serait:
Maintenant, il ya un inconvénient évident de cette méthode. Il ne fonctionne que pour la même taille de colonne, de sorte que seule
.col-X-2
,.col-X-4
,col-X-6
,col-X-8
, etcol-X-10
sont pris en charge.Approche 2 (l'ancien
margin:auto
)Vous pouvez centre de toute taille de la colonne en utilisant la méthode éprouvée
margin: 0 auto;
technique. Vous avez juste besoin de prendre soin de la variable qui est ajouté par Bootstrap du système de grille. Je recommande la définition d'une classe CSS personnalisé comme suit:Maintenant, vous pouvez l'ajouter à n'importe quelle colonne de la taille à la taille de l'écran, et il va travailler de façon transparente avec Bootstrap du responsive layout:
Remarque: Avec les deux techniques, vous pouvez ignorer le
.row
élément et d'avoir la colonne centrée à l'intérieur d'un.container
, mais vous remarquerez une différence dans la taille de la colonne en raison du rembourrage dans la classe conteneur.Mise à jour:
Depuis la v3.0.1 Bootstrap a une classe nommée
center-block
qui utilisemargin: 0 auto
, mais manquantfloat:none
, vous pouvez l'ajouter à votre CSS pour le faire fonctionner avec le système de grille.margin: 0 auto
), c'est juste un conteneur envelopper tout flottait éléments à l'intérieur.col-
classefloat:none;
<div class="container"> <div class='row'> <div class='col-md-2 center-block'> <div class="page-header"> <h1 class='text-center'>Services</h1> </div> </div> </div> </div>
vertical-align: top
à la.col-centered
classe pour s'assurer de l'alignement vertical des blocs.float
propriété estnone
. De sorte que vous pouvez régler. Plus précisément aucunIs a keyword indicating that the element must not float.
Et c'est une nécessité si vous souhaitez placer une colonne dans le centre. Si vous le faites seulement avecmargin
ça ne marchera pas..row.text-center
fait.justify-content: space-around
~~au lieu de~~ à la place de l'approche 2. il y aurait à un .la ligne contenantLa méthode préférée de centrage colonnes est d'utiliser des "offsets" (ie:
col-md-offset-3
)Bootstrap 3.x centrage des exemples
Pour centrage des éléments, il y a un
center-block
classe helper.Vous pouvez également utiliser
text-center
à centre de texte (et des éléments inline).Démo: http://bootply.com/91632
MODIFIER - Comme mentionné dans les commentaires,
center-block
travaille sur le contenu d'une colonne etdisplay:block
éléments, mais ne fonctionne pas sur la colonne elle-même (col-*
divs) parce que Bootstrap utilisefloat
.Mise à jour 2018
Maintenant avec Bootstrap 4, le centrage méthodes ont changé..
text-center
est toujours utilisé pour ladisplay:inline
élémentsmx-auto
remplacecenter-block
au centredisplay:block
élémentsoffset-*
oumx-auto
peut être utilisé pour centre de colonnes de la grillemx-auto
(auto x-axe marges) centre dedisplay:block
oudisplay:flex
les éléments qui ont un largeur définie, (%
,vw
,px
, etc..). Flexbox est utilisé par défaut sur des colonnes de la grille, donc il y a aussi différents flexbox centrage méthodes.Démo Bootstrap 4 Centrage Horizontal
Pour le centrage vertical dans BS4 voir https://stackoverflow.com/a/41464397/171456
text-center
détail - qui aucune des autres réponses fournies. Celui-ci obtient mon vote.float:none;
mx-auto
de travail pour moiMaintenant Bootstrap 3.1.1 travaille avec
.center-block
, et cette classe helper fonctionne avec le système à colonnes.Bootstrap 3 Classe Helper Centre.
Veuillez vérifier ce jsfiddle DÉMO:
Ligne de la colonne à l'aide du centre
col-center-block
de la classe helper.float:none
que l'div centre-bloc a lastyle="width : ?px"
style est appliqué. Par exemple, une largeur de l'image. Fonctionne avec 3.2.2Simplement ajouter la ligne suivante à votre fichier CSS spécifique. L'édition de Bootstrap, fichiers CSS directement n'est pas recommandé et annule votre capacité à utiliser un CA.
Pourquoi?
Bootstrap CSS (version 3.7 et inférieur) utilise margin: 0 auto;, mais elle est remplacée par le flotteur de la propriété de la taille du conteneur.
PS:
Après l'ajout de cette classe, n'oubliez pas de définir des classes par le bon ordre.
3.3.7
et c'est la seule méthode de travail pour moi!!important
est nécessaireBootstrap 3 a maintenant une classe intégrée pour cette
.center-block
Si vous êtes toujours à l'aide de 2.X puis juste ajouter ceci dans votre CSS.
float:none;
Mon approche du centre de colonnes est d'utiliser
display: inline-block
pour les colonnes et lestext-align: center
pour le conteneur parent.Vous avez juste à ajouter la classe CSS 'centré' à la
row
.HTML:
CSS:
JSFiddle: http://jsfiddle.net/steyffi/ug4fzcjd/
Bootstrap de la version 3 a une .texte-centre de classe.
Il suffit d'ajouter cette classe:
Il suffit de charger ce style:
Exemple:
Avec Bootstrap v4, cela peut être fait simplement en ajoutant
.justify-content-center
à la.row
<div>
https://getbootstrap.com/docs/4.0/utilities/flex/#justify-content
Cela fonctionne. Un hackish façon, sans doute, mais il fonctionne très bien. Il a été testé pour répondre (Y).
img
peut être défini comme un bloc..centered img { display: inline; }
pour votre réponse et puis il serait digne d'un vote à la place.Simplement une colonne qui affiche le contenu de col-xs-12 (mobile-première 😉 et configurer le conteneur uniquement pour contrôler la façon dont vous voulez l'échelle de votre centrée sur le contenu, donc:
CSS:
HTML:
HTML:
Pour une démonstration, voir http://codepen.io/Kebten/pen/gpRNMe 🙂
Vous pouvez utiliser
text-center
pour la ligne et de vous assurer de l'intérieur divs ontdisplay:inline-block
(avec pasfloat
).Comme:
Et CSS:
Le violon:
http://jsfiddle.net/DTcHh/3177/
Au centre de la col - nous besoin d'utiliser le code ci-dessous. cols sont le vagabond des éléments en dehors de la marge de l'auto. Nous allons également mettre à flotter aucun,
Au centre de la ci-dessus col-lg-1 avec la classe de centré, nous allons écrire:
De centrer le contenu à l'intérieur de la div, l'utilisation
text-align:center
,Si vous voulez centrer uniquement sur l'ordinateur de bureau et un écran plus grand, pas sur mobile, puis utilisez la commande suivante media query.
Et pour centrer la div uniquement sur la version mobile, utilisez le code ci-dessous.
Ce n'est probablement pas la meilleure réponse, mais il y a une solution créative à ce. Comme l'a souligné koala_dev la colonne de compensation ne fonctionne que pour la même taille de colonne. Cependant, par l'imbrication des lignes vous pouvez obtenir le centrage inégale des colonnes ainsi.
Pour coller avec la question de départ où vous voulez 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 le résultat, sinon les colonnes seront wrap.
Une autre approche de la compensation est de disposer de deux lignes vides, par exemple:
Nous pouvons atteindre cet objectif en utilisant la disposition de table mécanisme:
Le mécanisme est:
L'exemple de la démo est ici
Ce n'est pas mon code, mais il fonctionne parfaitement (testé sur Bootstrap 3) et je n'ai pas de déconner avec le col-de décalage.
Démo:
CSS:
HTML:
Comme koala_dev utilisé dans son approche de 1, je préfère la méthode de la compensation au lieu de centre-bloc ou sur les bords, ce qui a limité l'usage, mais comme il a mentionné:
Cela peut être résolu en utilisant l'approche suivante pour impair de colonnes.
Vous pouvez utiliser la solution très flexible flexbox pour votre fichier d'Amorçage.
pouvez centrer votre colonne.
Découvrez flex.
Parce que je n'ai jamais eu la nécessité de centrer un seul
.col-
dans un.row
, j'ai mis la classe suivante sur l'emballage.row
de ma cible colonnes.Exemple
Pour ceux qui cherchent à centre de la colonne, des éléments sur l'écran quand vous n'avez pas le nombre exact de 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 voulez avoir 3 par ligne sur un
md
écran, vous faites cela:Gardez à l'esprit, le second argument doit être divisible par 12.
De centre de plus d'une colonne dans un fichier d'amorce de la ligne et le nombre de cols sont impairs, il suffit d'ajouter cette
css
classe pour toutes les colonnes de la ligne:Dans votre code HTML que vous avez quelque chose comme:
Essayer ce code.
Ici, j'ai utilisé le col-lg-1, et le décalage doit être de 10 pour bien centrés, la div sur les gros appareils. Si vous avez besoin d'un centre de taille moyenne à grande périphériques alors il suffit de changer le lg md et ainsi de suite.
Bootstrap 4 solution:
Si vous mettez cela sur votre ligne, toutes les colonnes à l'intérieur sera centrée sur:
Essayer cette
Vous pouvez utiliser d'autres
col
ainsi commecol-md-2
, etc.Méthode 1:
Méthode 2:
CSS
Bootstrap des Conseils, des exemples et des outils: OnAirCode
Je suggère tout simplement à utiliser la classe
text-center
:Pour être plus précis du Bootstrap système de grille contient 12 colonnes et au centre de tout contenu, disons, par exemple, le contenu prend une colonne. On aura besoin d'occuper deux colonnes de Bootstrap grille et placer le contenu sur la moitié des deux colonnes occupées.
col-xs-offset-5' est à dire le système de grille par où commencer, placez le contenu.
col-xs-2' est à dire le système de grille de la façon dont beaucoup de la gauche sur les colonnes, le contenu occuper.
'centré' sera une classe définie qui permettra de centrer le contenu.
Ici est de savoir comment cet exemple ressemble à du Bootstrap système de grille.
Colonnes:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
.......décalage....... .données. .......pas utilisé........
Ajouter l'extrait de code suivant à l'intérieur de votre .de ligne ou de votre .col. C'est pour Bootstrap 4*.
Utilisation
mx-auto
dans votre div class en utilisant Bootstrap 4.Avec bootstrap 4 vous pouvez simplement essayer de
justify-content-md-center
comme il est mentionné iciN'oubliez pas d'ajouter
!important
. Ensuite, vous pouvez être sûr que l'élément sera vraiment dans le centre:Remarque si vous êtes en utilisant Bootstrap 4, vous pouvez utiliser
.align-items-center
dans votrerow
comme Bootstrap 4 utilise maintenant le système flex.