Comment obtenir le contenu centré en utilisant Twitter Bootstrap?
j'essaie de suivre un exemple très basique. En utilisant la page de démarrage et le système de grille , j'espérais ce qui suit:
html lang-html prettyprint-override"><div class="row">
<div class="span12">
<h1>Bootstrap starter template</h1>
<p>Example text.</p>
</div>
</div>
...produirait un texte centré.
cependant, il apparaît toujours à l'extrême gauche. Ce que je fais mal?
22 réponses
ceci est pour le centrage de texte ( qui est ce que la question était au sujet de )
pour les autres types de contenu, voir réponse de Flavien .
Mise À Jour: Bootstrap 2.3.0+ Réponse
l'original de La réplique a été pour la première version de bootstrap. À partir de bootstrap 2.3.0, vous pouvez simplement donner au div la classe .text-center
.
réponse originale (pré 2.3.0)
Vous devez définir l'une des deux catégories, row
ou span12
avec un text-align: center
. Voir http://jsfiddle.net/xKSUH / ou http://jsfiddle.net/xKSUH/1/
NOTE: ceci était supprimé dans Bootstrap 3 .
Pré-Bootstrap 3, vous pouvez utiliser la classe CSS pagination-centered
comme ceci:
<div class="span12 pagination-centered">
Centered content.
</div>
Classe pagination-centered
est déjà en bootstrap.css (ou bootstrap.min.css) et a la seule règle:
.pagination-centered{text-align:center;}
Avec Bootstrap 2.3.0. il suffit d'utiliser la classe text-center
je suppose que la plupart des gens ici sont effectivement à la recherche de la voie pour centrer le tout div
et non seulement le contenu du texte (qui est trivial...).
la seconde façon (au lieu d'utiliser text-align:center) de centrer les choses en HTML est d'avoir un élément avec une largeur fixe et une marge automatique (gauche et droite). Avec Bootstrap, le style définissant les marges automatiques est la classe "conteneur".
<div class="container">
<div class="span12">
"Centered stuff there"
</div>
</div>
regardez ici pour un violon: http://jsfiddle.net/D2RLR/7788/
Bootstrap 3.1.1 possède une classe .center-block
pour le centrage des divs. Voir: http://getbootstrap.com/css/#helper-classes-center .
blocs de contenu de Centre définir un élément à
display: block
et de Centre viamargin
. Disponible comme mixin et class.
<div class="center-block">...</div>
ou, comme d'autres l'ont déjà dit, utiliser le .text-center
texte de la classe au centre.
la meilleure façon de le faire est de définir un style css:
.centered-text {
text-align:center
}
ensuite, où que vous ayez besoin de texte centré, vous l'ajoutez comme ceci:
<div class="row">
<div class="span12 centered-text">
<h1>Bootstrap starter template</h1>
<p>Use this document as a way to quick start any new project.<br> All you get is this message and a barebones HTML document.</p>
</div>
</div>
ou si vous voulez simplement que la balise p soit centrée:
<div class="row">
<div class="span12 centered-text">
<h1>Bootstrap starter template</h1>
<p class="centered-text">Use this document as a way to quick start any new project.<br> All you get is this message and a barebones HTML document.</p>
</div>
</div>
le moins de css inline vous utilisez le mieux.
Update 2018 - Bootstrap 4
"contenu centré" peut signifier beaucoup de choses différentes, et Bootstrap centrage a beaucoup changé depuis le post original.
Centre Horizontal
Bootstrap 3
-
text-center
est utilisé pourdisplay:inline
éléments -
center-block
à centredisplay:block
éléments -
col-*offset-*
au centre des colonnes de la grille - voir cette réponse au centre de la barre de navigation
Démo Bootstrap 3 Horizontal De Centrage
Bootstrap 4
-
text-center
est encore utilisé pourdisplay:inline
elements -
mx-auto
remplacecenter-block
pardisplay:block
elements -
offset-*
oumx-auto
peut être utilisé pour centre de colonnes de la grille -
justify-content-center
dansrow
peut également être utilisé pour le centrecol-*
mx-auto
( display:block
ou display:flex
les éléments qui ont une largeur définie de 1519810920" , ( %
, vw
, px
, etc..). Flexbox est utilisé par défaut sur les colonnes de grille, il existe donc aussi diverses méthodes de centrage flexbox.
Démo Bootstrap 4 Centrage Horizontal
Centre Vertical
maintenant que Bootstrap 4 est flexbox par défaut il existe de nombreuses approches différentes de l'alignement vertical en utilisant: auto-margins , flexbox utils , ou les display utils avec vertical align ULS . Au début ,les " utils d'alignement vertical "semblent évidents, mais ces seulement fonctionnent avec des éléments d'affichage en ligne et de table. Voici quelques options de centrage vertical Bootstrap 4..
1 - Centre Vertical Utilisant Les Marges Automatiques:
une autre façon de centrer verticalement est d'utiliser my-auto
. Cela va centrer l'élément dans son conteneur. Par exemple, h-100
fait la pleine hauteur de la rangée, et my-auto
centre verticalement la colonne col-sm-12
.
<div class="row h-100">
<div class="col-sm-12 my-auto">
<div class="card card-block w-25">Card</div>
</div>
</div>
Vertical À L'Aide Du Centre Auto Marges Démo
my-auto
représente les marges sur l'axe vertical des ordonnées et est équivalent à:
margin-top: auto;
margin-bottom: auto;
2 - Centre Vertical avec Flexbox:
depuis Bootstrap 4 .row
est maintenant display:flex
vous pouvez simplement utiliser align-self-center
sur n'importe quelle colonne pour le centrer verticalement...
<div class="row">
<div class="col-6 align-self-center">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
ou, utiliser align-items-center
sur la totalité du .row
pour aligner verticalement le centre de tous les col-*
dans la rangée...
<div class="row align-items-center">
<div class="col-6">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
Centre Vertical De Hauteur Différente Colonnes Démo
3 - Centre Vertical Utilisant Les Outils D'Affichage:
Bootstrap 4 a utils d'affichage qui peuvent être utilisés pour display:table
, display:table-cell
, display:inline
, etc.. Ceux-ci peuvent être utilisés avec le utils d'alignement vertical pour aligner inline, inline-bloc ou des éléments de cellules de tableau.
<div class="row h-50">
<div class="col-sm-12 h-100 d-table">
<div class="card card-block d-table-cell align-middle">
I am centered vertically
</div>
</div>
</div>
depuis février 2013, dans certains cas, j'ajoute une classe "centrée" à la div "portée":
<div class="container">
<div class="row">
<div class="span9 centred">
This div will be centred.
</div>
</div>
</div>
et à CSS:
[class*="span"].centred {
margin-left: auto;
margin-right: auto;
float: none;
}
la raison en est que les Div de span* sont flottés vers la gauche, et la technique de centrage" marge automatique " ne fonctionne que si le div n'est pas flotté.
Demo (on JSFiddle): http://jsfiddle.net/5RpSh/8/embedded/result/
JSFiddle: http://jsfiddle.net/5RpSh/8/
la classe .show-grid applique le texte aligné au centre dans l'exemple du lien.
vous pouvez toujours ajouter style="text-align:center"
à votre div de rang ou une autre classe je pense.
si vous utilisez Bootstrap 3, Il a aussi la classe CSS intégrée nommée .centre de texte . Qu'est ce que vous voulez.
<div class="text-left">
left
</div>
<div class="text-center">
center
</div>
<div class="text-right">
right
</div>
s'il vous Plaît voir l'exemple dans jsfiddle. http://jsfiddle.net/ucheng/Q4Fue /
Bootstrap 2.3 a une classe text-center
.
<p class="text-left">Left aligned text.</p>
<p class="text-center">Center aligned text.</p>
<p class="text-right">Right aligned text.</p>
de mon côté je définis de nouveaux CSS
styles prêts à l'emploi et facile à se rappeler:
.center { text-align: center;}
.left { text-align: left;}
.right { text-align: right;}
.justify { text-align: justify;}
.fleft { float: left;} /*-> similar to .pull-left already existing in bootstrap*/
.fright { float: right;} /*-> similar to .pull-right already existing in bootstrap*/
.vab { vertical-align: bottom;}
.bold { font-weight: bold;}
.italic { font-style: italic;}
Est-ce une bonne idée? Est-il une bonne pratique?
si vous utilisez Bootstrap 2.0+
cela peut rendre la div centrée à la page.
<div class="row">
<div class="span4 offset4">
//your content here gets centered of the page
</div>
</div>
N'importe quelle classe utilitaire text-align ferait l'affaire. Bootstrap utilise depuis longtemps la classe .text-center
pour centrer le texte.
.text-center { text-align: center !important; }
Ou vous pouvez créer vos propres factures. Quelques variations que j'ai vues au fil des ans:
.u-text-center { text-align: center !important; }
.ta-center { text-align: center !important; }
.ta\:c { text-align: center !important; }
vous devez vous ajuster avec le .span
.
exemple:
<div class="container-fluid">
<div class="row-fluid">
<div class="span4"></div>
<!--/span-->
<div class="span4" align="center">
<div class="hero-unit" align="center">
<h3>Sign In</h3>
<form>
<div class="input-prepend">
<span class="add-on"><i class="icon-envelope"></i> </span>
<input class="span6" type="text" placeholder="Email address">
</div>
<div class="input-prepend">
<span class="add-on"><i class="icon-key"></i> </span>
<input class="span6" type="password" placeholder="Password">
</div>
</form>
</div>
</div>
<!-- /span -->
<div class="span4"></div>
</div>
<!-- /row -->
</div>
ma méthode préférée pour centrer des blocs d'information tout en maintenant la réactivité (compatibilité mobile) est de placer deux vides span1
divs avant et après le contenu que vous souhaitez centrer.
<div class="row-fluid">
<div class="span1">
</div>
<div class="span10">
<div class="hero-unit">
<h1>Reading Resources</h1>
<p>Read here...</p>
</div>
</div><!--/span-->
<div class="span1">
</div>
</div><!--/row-->
pour Bootstrap version 3.1.1 et supérieure, la meilleure classe pour centrer le contenu est la classe helper .center-block
.
<div class="container">
<div class="col-md-12 centered">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
label
</div>
<div class="col-md-1"></div>
</div>
</div>
</div>
Ne pas utiliser de récipient de liquide dans la main.
bloc central est également une option non mentionnée dans les réponses ci-dessus
<div class="center-block" style="width:200px;background-color:#ccc;">...</div>
l'Ensemble de la classe center-block
ne est-à-dire l'élément à avoir une marge de 0 auto, l'auto étant la marge gauche/droite. Cependant, à moins que la classe text-center ou CSS text-align:center ne soit définie sur le parent, l'élément ne sait pas de quel point effectuer ce calcul automatique, de sorte qu'il ne se centrera pas comme prévu.
ainsi texte-Centre est un une meilleure option.
vous pouvez utiliser l'un des types suivants ""
- utilisez la classe Bootstrap existante
text-center
. - , en Ajoutant un style personnalisé,
style = "text-align:center"
. -
utiliser une colonne offset:
exemple:
<div class="col-md-offset-6 col-md-12"></div>
j'ai créé cette classe pour garder le centré quelle que soit la taille de l'écran tout en maintenant les fonctionnalités responsive:
.container {
alignment-adjust: central;
}
utilisez simplement une classe, un centre de texte, pour le div ou l'étiquette que vous voulez. Je pense qu'il peut fonctionner correctement. Il s'agit d'une classe Bootstrap pour text align center.
voici quelques classes D'alignement de texte Bootstrap:
text-left, text-right, text-justify, etc.
<div class="row">
<div class="col-md-12 text-center">
<h1>Bootstrap starter template</h1>
<p>Example text.</p>
</div>
</div>
j'ai essayé deux façons, et il a fonctionné très bien pour centrer la div. Les deux façons aligneront les divs sur tous les écrans.
Voie 1: Utilisation De La Poussée:
<div class = "col-lg-4 col-md-4 col-sm-4 col-xs-4 col-lg-push-4 col-md-push-4 col-sm-push-4 col-xs-push-4" style="border-style:solid;border-width:1px">
<h2>Grievance form</h2> <!-- To center this text, use style="text-align: center" -->
</div>
Chemin 2: À L'Aide D'Offset:
<div class = "col-lg-4 col-md-4 col-sm-4 col-xs-4 col-lg-offset-4 col-md-offest-4 col-sm-offest-4 col-xs-offest-4" style="border-style:solid;border-width:1px">
<h2>Grievance form</h2> <!--to center this text, use style="text-align: center"-->
</div>
résultat:
explication
Bootstrap désignera à gauche, la première colonne de l'occupation de l'écran spécifiée. Si nous utilisons offset ou push, il déplacera la colonne 'this' par 'those' de nombreuses colonnes. Bien que j'ai fait face à certains problèmes dans la réactivité de l'offset, push était génial.