J'utilise bootstrap) et j'essaie de centrer un div (span7) comme celui-ci:
<div class="row-fluid">
<div id="main" class="span7">
Lorem ipsum dolor sit amet
</div>
</div>
mon code css est:
#main{
margin:0px auto;
}
Mais ce n'est pas au centre. Comment puis-je mettre le centre?
EDIT
span7
est maintenant col-7
in Bootstrap 4
Twitter bootstrap .span
Les classes sont placées à gauche pour ne pas se centrer normalement. Donc, si vous voulez qu'il centre votre span
ajoutez simplement float:none
à ton #main
règle.
CSS
#main {
margin:0 auto;
float:none;
}
Incidemment, si votre classe span
est numérotée de manière paire (par exemple, span8
) vous pouvez ajouter une classe offset
pour la centrer - pour span8
ce serait offset2
_ (en utilisant la grille par défaut de 12 colonnes), pour span6
ce serait offset3
et ainsi de suite (en gros, la moitié du nombre de colonnes restantes si vous soustrayez le nombre span
- du nombre total de colonnes de la grille).
[~ # ~] mettre à jour [~ # ~] Bootstrap 3 renommé de nombreuses classes donc tous les span*
classes devrait être col-md-*
et les classes offset
doivent être col-md-offset-*
, en supposant que vous utilisez la grille réactive de taille moyenne.
J'ai créé une démonstration rapide ici, j'espère que cela aidera: http://codepen.io/anon/pen/BEyHd .
Si quelqu'un veut la vraie solution pour centrer les DEUX images et le texte dans une étendue en utilisant bootstrap row-fluid, la voici (comment l'implémenter et l'explication suit mon exemple):
css
div.row-fluid [class*="span"] .center-in-span {
float: none;
margin: 0 auto;
text-align: center;
display: block;
width: auto;
height: auto;
}
html
<div class="row-fluid">
<div class="span12">
<img class="center-in-span" alt="MyExample" src="/path/to/example.jpg"/>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<p class="center-in-span">this is text</p>
</div>
</div>
USAGE: Pour utiliser ce css afin de centrer une image sur une étendue, appliquez simplement la classe .center-in-span à l'élément img, comme indiqué ci-dessus.
Pour utiliser ce css afin de centrer le texte dans une étendue, appliquez simplement la classe .center-in-span à l'élément p, comme indiqué ci-dessus.
EXPLICATION: Ce css fonctionne parce que nous modifions un style spécifique bootstrap. Les différences notables par rapport aux autres réponses postées sont que la largeur et la hauteur sont définies sur auto. utilisé avec un fixe avec (bon pour une page Web dynamique). également, la combinaison de régler la marge sur auto, text-align: center et display: block, prend en charge les images et les paragraphes.
Faites-moi savoir si cela est suffisamment complet pour une mise en œuvre facile.
À partir de BS3, il y a un .center-block
classe d'assistance. De la docs:
// Classes
.center-block {
display: block;
margin-left: auto;
margin-right: auto;
}
// Usage as mixins
.element {
.center-block();
}
Il y a une complexité cachée dans ce problème apparemment simple. Toutes les réponses données ont quelques problèmes.
Créer .col-centred
_ classe, mais il y a un casse-tête majeur.
.col-centred {
float: none !important;
margin: 0 auto;
}
<!-- Bootstrap 3 -->
<div class="col-lg-6 col-centred">
Centred content.
</div>
<!-- Bootstrap 2 -->
<div class="span-6 col-centred">
Centred content.
</div>
Le Gotcha
Bootstrap nécessite que les colonnes totalisent 12. Sinon, elles se chevaucheront, ce qui pose problème. Dans ce cas, la colonne centrée chevauchera la colonne au dessus de celle-ci. Visuellement, la page peut sembler identique, mais les événements de souris ne fonctionneront pas sur la colonne superposée (vous ne pouvez pas survoler ou cliquer sur des liens, par exemple). Cela est dû au fait que les événements de souris sont enregistrés sur la colonne centrée qui chevauche les éléments sur lesquels vous essayez de cliquer.
Les correctifs
Vous pouvez résoudre ce problème en utilisant un élément clearfix
. En utilisant z-index
mettre la colonne centrée en bas ne fonctionnera pas car elle se chevauchera elle-même et par conséquent les événements de la souris fonctionneront dessus.
<div class="row">
<div class="col-lg-12">
I get overlapped by `col-lg-7 centered` unless there's a clearfix.
</div>
<div class="clearfix"></div>
<div class="col-lg-7 centred">
</div>
</div>
Ou vous pouvez isoler la colonne centrée dans sa propre ligne.
<div class="row">
<div class="col-lg-12">
</div>
</div>
<div class="row">
<div class="col-lg-7 centred">
Look I am in my own row.
</div>
</div>
<!-- Bootstrap 3 -->
<div class="col-lg-6 col-lg-offset-3">
Centred content.
</div>
<!-- Bootstrap 2 -->
<div class="span-6 span-offset-3">
Centred content.
</div>
Le premier problème est que votre colonne centrée doit être un nombre pair car la valeur de décalage doit être divisée également par 2 pour que la présentation soit centrée (gauche/droite).
Deuxièmement, comme certains l’ont commenté, l’utilisation de compensations est une mauvaise idée. En effet, lorsque le navigateur redimensionnera, le décalage se transformera en un espace vide, ce qui poussera le contenu réel vers le bas de la page.
C'est la meilleure solution à mon avis. Aucun piratage requis et vous ne dérangez pas le réseau, ce qui pourrait avoir des conséquences inattendues, conformément aux solutions 1 et 2.
.col-centred {
margin: 0 auto;
}
<div class="row">
<div class="col-lg-12">
<div class="centred">
Look I am in my own row.
</div>
</div>
</div>
Définissez la largeur sur 960 pixels, ou ce que vous préférez, et vous êtes prêt à partir!
#main {
margin: 0 auto !important;
float: none !important;
text-align: center;
width: 960px;
}
(Je ne pouvais pas comprendre cela avant d'avoir fixé la largeur, rien d'autre n'a fonctionné.)