I am trying to make a special in a row of flexboxes stretch to be the height of two rows. Here is what I am trying to achieve: What I want. But here is my current result: Result.
I think I have to use flex-wrap: wrap;
, but I am not sure. I don't want to do flex-direction: column;
, because then I cannot stretch the divs at the top like if they were aligned in a row. I want all the children divs to be part of the same flex container. Does anyone have any ideas?
Note : I found this, where I was able to create this. If somehow I can move the Three up to be next to the Two, I may be able to achieve what I want. Not sure how to do this.
Here is my code I am using:
.flex-row {
display: flex;
flex: 1;
flex-direction: row;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
}
.flex-col {
margin: 5px;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
display: flex;
justify-content: center;
align-items: center;
flex: 1;
flex-direction: column;
padding: 10px;
box-sizing: border-box;
}
<div class="flex-row">
<div class="flex-col">
<p>This box has little text.</p>
</div>
<div class="flex-col">
<p>This box is diffrent than small. It has a middleish amout of text.</p>
</div>
<div class="flex-col">
<p>This box is diffrent than small and middleish. It has a lot of text. Thus, I want it to continue onto the next row of flexboxes.</p>
</div>
<div class="flex-col">
<p>This box has little text.</p>
</div>
<div class="flex-col">
<p>This box is diffrent than small. It has a middleish amout of text.</p>
</div>
</div>
Thank you.
Getting the child of a flex-item to fill height 100%Set position: absolute; on the child. You can then set width/height as required (100% in my sample).
By default, a flex container has the following width and height assigned. width: auto; height: auto; But you can set a fixed height and width to the flex container.
The flex columns can be aligned left or right by using the align-content property in the flex container class. The align-content property changes the behavior of the flex-wrap property. It aligns flex lines. It is used to specify the alignment between the lines inside a flexible container.
You could do it with grid
like this.
body {
background-color: black;
}
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 15px;
}
.tall {
grid-row: 1 / 3;
grid-column: 3;
}
.grid-box {
background-color: #9e9e9e;
}
<div class="grid">
<div class="grid-box">
<p>This box has little text.</p>
</div>
<div class="grid-box">
<p>This box is diffrent than small. It has a middleish amout of text.</p>
</div>
<div class="grid-box tall">
<p>This box is diffrent than small and middleish. It has a lot of text. Thus, I want it to continue onto the next row of flexboxes.</p>
</div>
<div class="grid-box">
<p>This box has little text.</p>
</div>
<div class="grid-box">
<p>This box is diffrent than small. It has a middleish amout of text.</p>
</div>
</div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With