Définir la hauteur de CSS flex éléments pour le même montant?
J'ai 2 divs à côté les uns des autres que j'ai centrer verticalement et horizontalement à l'aide de flex et de justifier-content/aligner-éléments.
Exemple
HTML:
<div class="inner">
<div class="section green">
<img src="http://i.imgur.com/hEOMgVf.png">
</div>
<div class="section red">
<img src="http://i.imgur.com/nEybO1g.png">
</div>
</div>
CSS:
.inner {
float: left;
width: 500px;
display: flex;
justify-content: center;
align-items: center;
background-color: #343434;
text-align: center;
}
.section {
float: left;
flex: 1;
}
.green { background-color: #7dc242; }
.red { background-color: #ed1c24; }
Mon problème est que j'ai besoin de régler la hauteur des deux "section" divs à la même, ainsi que le centrage verticalement et horizontalement. Vous pouvez voir dans le JSFiddle ci-dessous que le fond vert n'est pas la même hauteur que le rouge. Comment puis-je faire les deux divs toute la hauteur de la div conteneur?
Ici est simplifié JSFiddle de ce que j'ai:
http://jsfiddle.net/beK28/1/
- Comment sur la définition des images à la hauteur de l'égalité? jsfiddle.net/YGTry
Vous devez vous connecter pour publier un commentaire.
Pour obtenir l'effet que vous voulez, vous ne devriez pas essayer de le faire tout de l'alignement dans le conteneur de l'élément et de la place devrait définir
.section
aussidisplay:flex
. Ensuite, vous pouvez justifier et centre correctement les images à l'intérieur de la enfants des éléments.http://jsfiddle.net/beK28/8/
Vous aussi n'avez pas besoin d'utiliser float, c'est toute la question de l'utilisation des conteneurs souples.
Vos éléments ne sont pas les étirements à la verticale de plus, parce que vous avez mis en
align-items: center
. Si vous voulez être égale hauteur, il doit être la valeur par défaut de l'étirement. Si vos éléments sont multi-ligne, alors vous pouvez utiliseralign-content: center
au lieu de cela, ce qui vous donnera l'effet que vous recherchez. Pour une seule ligne flex éléments, il n'apparaît pas que vous pouvez avoir verticale de centrage + hauteur égale à travers Flexbox seul.http://jsfiddle.net/beK28/6/
Noter, cependant, que vous peut ont flex éléments avec la propriété display de table-cell.
http://jsfiddle.net/beK28/7/
J'ai eu des problèmes avec stretch/centrage avant, et a fini de mise en forme que
display: table-cell
: