I have HTML that looks like the following:
<div class="page-break">
<div class="menu-item-div">
<!-- CONTENT WITHIN DIV -->
</div>
<div class="menu-item-div">
<!-- CONTENT WITHIN DIV -->
</div>
<div class="menu-item-div">
<!-- CONTENT WITHIN DIV -->
</div>
</div>
Each .menu-item-div
I need to be evenly spaced apart vertically to fill the div's height. The div .page-break
does have a set height of 210mm.
Each .page-break
div will have a different number of .menu-item-div
within it. I need to be able to equally space these divs vertically but stay contained within the .page-break
div's height of 210mm.
A solution using flexbox is fine, I just don't know flexbox enough to do this.
Another requirement is these divs will be printed and it has to work when printed.
Align divs vertically using flex In this case, you have to set main axis as the vertical axis using flex-direction: column; and also use justify-content:space-between; or justify-content:space-around; to evenly space child elements.
Set the following properties on the container
.page-break {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.page-break {
display: flex;
flex-direction: column;
justify-content: space-between;
height: 200px;
border: 1px solid green;
}
.menu-item-div {
background: tomato;
height: 40px;
/* If there was real content in the markup this would not be necessary */
}
<div class="page-break">
<div class="menu-item-div">
<!-- CONTENT WITHIN DIV -->
</div>
<div class="menu-item-div">
<!-- CONTENT WITHIN DIV -->
</div>
<div class="menu-item-div">
<!-- CONTENT WITHIN DIV -->
</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