CSS align content to bottom in flexbox example
This tutorial shows multiple ways to align elements or content to the bottom in the CSS flexbox with examples.
Let’s create a flex with child items in HTML
<!doctype html>
<html>
<head>
<title>HTML, CSS and JavaScript demo</title>
</head>
<body>
<div class="flex-container">
<div>heading 1</div>
<div>heading 2</div>
<div>heading 3</div>
<button class="button">Button</button>
</div>
</body>
</html>
Here is a flex container with a display:flex
.flex-container {
display: flex;
border: 1px solid black;
height: 150px;
width: 150px;
flex-direction: column;
}
Render the flex container on the browser as seen below
<style>
.flex-container1 {
display: flex;
border: 1px solid black;
height: 150px;
width: 150px;
flex-direction: column;
}
</style>
<div class="flex-container1">
<div>heading 1</div>
<div>heading 2</div>
<div>heading 3</div>
<button class="button">Button</button>
</div>
There are multiple ways we can align to bottom elements in CSS flexbox.
- use flex-grow property
flex-grow makes the element takes available space in the flexbox container.
<!doctype html>
<html>
<head>
<title>HTML, CSS and JavaScript demo</title>
</head>
<body>
<div class="flex-container">
<div>heading 1</div>
<div>heading 2</div>
<div>heading 3</div>
<button class="button">Button</button>
</div>
</body>
</html>
Here is a flex container with display:flex and flex-group to child bottom element
.flex-container {
display: flex;
border: 1px solid black;
height: 150px;
width: 150px;
flex-direction: column;
}
.button {
display: flex;
flex-grow: 1;
}
The button is aligned to the bottom.
<style>
.flex-container {
display: flex;
border: 1px solid black;
height: 150px;
width: 150px;
flex-direction: column;
}
.button2_1 {
display: flex;
flex-grow: 1;
}
</style>
<div class="flex-container">
<div>heading 1</div>
<div>heading 2</div>
<div>heading 3</div>
<button class="button2_1">Button</button>
</div>
- use auto margins to make the bottom child element
Add the container with flex:1 and child element with margin-top: auto or margin-top: auto;
margin top or bottom auto makes push the element to the bottom.
.flex-container {
display: flex;
border: 1px solid black;
height: 150px;
width: 150px;
flex-direction: column;
}
.button {
margin-top: auto;
}