css flexbox: même hauteur pour tous les éléments?
À l'aide de CSS et flexbox, je ne comprends pas comment donner la même hauteur pour les divs "a" et "b". J'ai besoin de b à devenir plus grand de façon à correspondre à la hauteur. En d'autres termes, la zone grise doit être aussi grande que la zone rouge.
J'avais cru comprendre que c'était assez pour mettre flex:1
à la fois a et b, dans l'ordre pour eux d'avoir la même hauteur. Mais il n'en est pas ainsi.
J'ai tenté de flex-basis:0
à deux "a" et "b", mais le contenu est tronqué. Je ne peux pas tronquer un, j'ai besoin de b à être élargie.
CSS:
#cont1{
display:flex;
flex-direction:column;
}
#a{
background-color:red;
flex:1;
}
#b{
background-color:grey;
flex:1;
}
HTML:
<div id="cont1">
<div id="a">
<h1>title</h1>
<h1>title</h1>
<h1>title</h1>
<h1>title</h1>
<h1>title</h1>
<h1>title</h1>
</div>
<div id="b">
short text
</div>
</div>
- Il est, par exemple, mais à l'aide de javascript 🙁 ... jsfiddle.net/wothbd5z/1
Vous devez vous connecter pour publier un commentaire.
Si vous pouvez survivre sans flex, le positionnement peut le faire.
CSS:
HTML:
Spécifier une hauteur pour le conteneur flex.
Essayez ceci:
Vous avez besoin pour créer un espace défini pour le flex, afin de les distribuer.
Mise à JOUR (sur la base des observations)
La mise en page fonctionne parfaitement, codé. Le flex éléments de la primaire conteneur flex (
.flex-md
) sont l'étirement de la pleine hauteur du conteneur. N'importe comment beaucoup de contenu que vous l'ajouter à la boîte n ° 1 ou la case no 2), la colonne contenant les boîtes de #5 et #6, sera égale hauteur.Toutes les colonnes de la primaire conteneur flex (
<div class="row flex-md" id="row-quadrati">
) sont à la même hauteur, quel que soit le contenu de la quantité. http://jsfiddle.net/s2b0v4ph/1/La raison que la case no 5 ne sont pas alignées avec la boîte #2 lorsque le contenu est ajouté, c'est que chacune de ces boîtes existe dans un autre flex contexte de formatage. En d'autres termes, les boîtes existent dans différents conteneurs flex.
Plus précisément, les boîtes de #1, #2 et #3 sont flex éléments de
#quadr-col-1
, et les boîtes de #4, #5 et #6 sont flex éléments de#quadr-col-2
. Les deux#quadr-col-1
et#quadr-col-2
sont flex éléments de la primaire conteneur flex, doublant (imbriqué) conteneurs flex, eux-mêmes.Parce que ces boîtes existent dans de séparer les conteneurs flex il n'y a aucune raison pour eux à part égale hauteur. Si vous souhaitez que le flex de l'égalité hauteur de la fonction à appliquer, de les mettre tous dans le même conteneur flex.
flex-grow
etflex-shrink
travail par la distribution de l'espace disponible dans le conteneur flex. Quelle est la hauteur du conteneur flex? Comment peut -flex
distribuer de l'espace s'il ne sait pas combien il y a d'espace?J'ai résolu le problème en javascript, mais je suis toujours intéressé par un css solution:
violon: http://jsfiddle.net/s2b0v4ph/3/
Le truc, c'est cette partie
http://codepen.io/damianocel/pen/XmxmQE
Maintenant ces divs auront la même hauteur, peu importe l'ensemble des pages de hauteur.
Est-ce que vous avez cherché?