Centrage verticalement de deux & lt; div class = "span6" & gt; dans Bootstrap
MODIFIER: voulais Juste préciser que ces travées sont inconnus en hauteur (à cause de la réactivité)!
Je suis en train de alignez verticalement les deux <div class="span6">
's dans un <div class="row">
dans le Bootstrap et je vais avoir des problèmes à l'aide de l'un de mes tours habituels, tels que display: inline-block;
ou display: table-cell;
(voici le JSFiddle je travaillais sur: http://jsfiddle.net/mA6Za/).
Voici ce que j'ai essayé d'utiliser, qui ne fonctionne pas dans le Bootstrap:
<div class="container">
<div class="row" style="display: table">
<div class="span6" style="height: 300px; background: red; display: table-cell !important; vertical-align: middle;">
Block 1 - Vertically center me please!
</div>
<div class="span6" style="height: 170px; background: blue; display: table-cell !important; vertical-align: middle;">
Block 2- Center me too
</div>
</div>
</diV>
Est-il possible d'aligner verticalement ces deux .span6
's tels que la hauteur de Block1
et Block2
sont inconnus? J'aimerais utiliser Bootstrap en raison de la responsable de fonctionnalités, mais pour la tablette+ nous aimerions le contenu de alignées à la verticale.
source d'informationauteur Walker
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que vous êtes très clair, si vous voulez la contenu de la
div
's être centrée verticalement ou le réeldiv
's eux-mêmes. De toute façon, il y a une solution à deux options:Verticalement de centrage de la réelle
div
'D'abord une solution qui aligne verticalement les
div
's: jsFiddleIl fonctionne par la mise en
display: table;
sur.container
etdisplay: table-cell;
sur.row
. Une fois que c'est fait, vous pouvez définirvertical-align: middle;
sur.row
à la verticale du centre de son contenu.J'ai également eu à forcer manuellement la largeur de
.row
être960px
ce n'est pas très réactif (vous pouvez corriger cela en utilisant les media queries), mais lemargin-left
de-20px
qui Bootstrap jeux sur.row
ne fonctionne pas après la misedisplay: table-cell;
sur.row
. Pas de force de l'ajout de ces extra20px
aurait pour résultat la deuxièmediv
de se retrouver ci-dessous la première, parce qu'ils ne sont pas adaptées ensemble sur la même ligne de plus. J'ai quelquesheight: 100%;
's sur tous les éléments à des fins de démonstration.CSS
Verticalement de centrage de la
div
's table des matièresSi vous voulais verticalement centrer le contenu de la
div
's, vous pouvez le faire en définissantdisplay: table;
sur.row
et réglagedisplay: table-cell;
sur.span6
. Vous auriez également besoin de se débarrasser defloat: left;
sur.span6
par la mise àfloat: none
.Ici un violon la démonstration de cette option: jsFiddle
Puisque vous êtes à l'aide d'une hauteur fixe et une seule ligne, vous pouvez facilement utiliser
line-height
pour cela.Voir violon: http://jsfiddle.net/mA6Za/1/
essayer de faire ce http://jsfiddle.net/mA6Za/2/
Mise à JOUR
Si j'ai eu tort, ma réponse ne fonctionne pas, et voici pourquoi. Bootstrap est toujours l'application d'un
float: left
à tous<div class="span*">
éléments.Vous pouvez remplacer ces règles en effectuant les modifications suivantes dans le
.cell
style de l'original de mes réponse:Cependant, vous devrez alors vous perdez le responsive "l'empilement" des éléments sur les petits écrans (dont je ne pense pas que vous voulez) et au lieu de conserver le "tableau" l'apparence. Pour éviter cela, vous aurez probablement à faire de la
display: table; float: none;
style conditionnel avec vos propres requêtes de média.Même encore, l'intention de Bootstrap a été de ne pas afficher le contenu en CSS table afin d'en substituant les styles pour ce faire, vous risquez d'introduire d'autres "bugs" sur votre écran.
Voici une mise à jour de violon à l'examen: http://jsfiddle.net/7Y8Jv/3/
RÉPONSE ORIGINALE À CETTE QUESTION
Est-ce que vous cherchez: http://jsfiddle.net/7Y8Jv/1/?
Mon balisage et les styles ne regarde pas beaucoup différente de la vôtre, mais je le centrage vertical que vous demandez.
Balisage
CSS
Il semble que vous voulez de deux lignes à chaque ligne en prenant la moitié de l'écran.
Pourquoi ne pas utiliser le
offset3
de passer sur votre ligne un quart du chemin (pour le mettre où vous le voulez), et puis encore utiliserspan6
en deux lignes séparées:JSFiddle: http://jsfiddle.net/mA6Za/3/
Utiliser quelques astuces avec jquery...
1) obtenir la durée de la hauteur avec l'id
2) faire quelques calculs pour la marge supérieure
3) ensuite, définissez css
Il travaille également sur la fenêtre de redimensionnement.
DÉMO sur jsfiddle...http://jsfiddle.net/q49Da/
HTML
JQUERY