How to Align the Content of a Div Element to the Bottom

CSS allows us to align the content of a <div> element to the bottom with special techniques. Also, we can align the content to the top of a <div>, to the bottom on the left or on the right side. We’ll discuss all possible variants.

It is very easy if you follow the steps described below.

Let’s see an example and try to discuss each part of the code together.

Create HTML

  • Create a <div> with the class "main". It includes three other <div> elements.
  • Place an <h2> tag in the first <div>, which has a class name “column1”, write some content in it.
  • The second <div> has the class with name "column2".
  • The third <div> has an id with name "bottom".
<body>
  <div class="main">
    <div class="column1">
      <h2>W3docs</h2>
    </div>
    <div class="column2">
      Lorem Ipsum is simply dummy text of the printing and typesetting industry.
    </div>
    <div id="bottom">Bottom Content Div</div>
  </div>
</body>

Add CSS

  • Use the border, height, width, and position properties to style the "main" class. The float property defines on which side of the container the elements should be placed. The position property specifies the position of the element in a document.
  • Set color for the text of the first <div>. In this example, we use a "hex" value for the color.
  • Use the text-align property to align the inner content of the block element.
  • Use the bottom and left properties. The bottom property specifies the bottom position of an element along with the position property. The left property specifies the left position of an element along with the position property.

The float property is ignored if elements are absolutely positioned (position: absolute).
.main {
  border: 1px solid #4287f5;
  height: 180px;
  width: 500px;
  position: relative;
}

.column1 {
  color: #4287f5;
  text-align: center;
}

.column2 {
  text-align: center;
}

#bottom {
  position: absolute;
  bottom: 0;
  left: 0;
}

Let’s bring the parts of the code together and see how it works!

Example of aligning the content to the left bottom:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .main {
        border: 1px solid #4287f5;
        height: 180px;
        width: 500px;
        position: relative;
      }
      .column1 {
        color: #4287f5;
        text-align: center;
      }
      .column2 {
        text-align: center;
      }
      #bottom {
        position: absolute;
        bottom: 0;
        left: 0;
      }
    </style>
  </head>
  <body>
    <div class="main">
      <div class="column1">
        <h2>W3docs</h2>
      </div>
      <div class="column2">
        Lorem Ipsum is simply dummy text of the printing and typesetting industry.
      </div>
      <div id="bottom">Bottom Content Div</div>
    </div>
  </body>
</html>

Result

W3docs

Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Bottom Content Div

In the following example, the content of a <div> is aligned to the bottom on the right side.

Example of aligning the content to the right bottom:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .main {
        border: 1px solid #4287f5;
        float: left;
        height: 180px;
        width: 500px;
        position: relative;
      }
      .column1 {
        color: #4287f5;
        text-align: center;
      }
      .column2 {
        text-align: center;
      }
      #bottom {
        position: absolute;
        bottom: 0;
        right: 0;
      }
    </style>
  </head>
  <body>
    <div class="main">
      <div class="column1">
        <h2>W3docs</h2>
      </div>
      <div class="column2">
        Lorem Ipsum is simply dummy text of the printing and typesetting industry.
      </div>
      <div id="bottom">Bottom Content Div</div>
    </div>
  </body>
</html>

In our next example, the content of a <div> is aligned to the bottom at the center. We set the width of the bottom <div> to "100%".

Example of aligning the content to the center bottom:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .main {
        border: 1px solid #4287f5;
        float: left;
        height: 180px;
        width: 500px;
        position: relative;
        text-align: center;
      }
      .column1 {
        color: #4287f5;
      }
      #bottom {
        position: absolute;
        bottom: 0;
        width: 100%;
        color: #ffffff;
        background-color: blue;
        padding: 15px 0;
      }
    </style>
  </head>
  <body>
    <div class="main">
      <div class="column1">
        <h2>W3docs</h2>
      </div>
      <div class="column2">
        Lorem Ipsum is simply dummy text of the printing and typesetting industry.
      </div>
      <div id="bottom">Bottom Content Div</div>
    </div>
  </body>
</html>

Let’s see another example, where the content of a <div> is aligned to the center with flexbox. Flexbox is a single-dimensional layout, which means that it lays items in one dimension at a time, either as a row, or column, but not both together. In the following example, we use the flex-direction property with the "column" value. The flex-direction property defines the main axis of the flex container and sets the order, in which flex items appear. The justify-content property aligns the items when the items do not use all available space horizontally. The "space-between" value is used with the justify-content property when there is space between the lines of the items.

The justify-content property must be used with the display property set to "flex". For aligning the items vertically, use the align-items property.

Example of aligning the content to the bottom with Flexbox:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      main {
        border: 1px solid blue;
        height: 150px;
        display: flex;/* defines flexbox */
        flex-direction: column;/* top to bottom */
        justify-content: space-between;/* first item at start, last at end */
      }
      h2 {
        margin: 0;
      }
    </style>
  </head>
  <body>
    <main>
      <h2>Header title</h2> Some text aligns to the bottom
    </main>
  </body>
</html>

Below, you can see another example with the CSS align-items property. It defines the default alignment for flex items. It is just like the justify-content property but the vertical version.

Some browsers do not support display: flex. Use prefixes listed below.
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
We have to use -Webkit- and -Moz- extensions with the align-items property, so as it will be supported by all browsers.

Example of aligning the content to the bottom with the align-items property:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      main {
        border: 1px solid green;
        background-color: green;
        color: #ffffff;
        padding: 20px;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        height: 150px;
        flex-direction: column;
      }
      h2 {
        margin: 0;
      }
      p {
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        height: 150px;
        -webkit-box-align: end;
        -webkit-align-items: flex-end;
        -ms-flex-align: end;
        align-items: flex-end;
        margin: 0;
      }
    </style>
  </head>
  <body>
    <main>
      <h2>Header title</h2>
      <p>Some text aligns to the bottom</p>
    </main>
  </body>
</html>

Let’s see one more example with the position property. In our first example, we use the position property with the "relative" value for the HTML <main> tag and with the "fixed" value for the <div>. The z-index property specifies the z-order of an element and its descendants or flex items.

The z-index property has an effect only on the positioned elements.

Example of aligning the content to the bottom with the "fixed" value of the position property:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      main {
        position: relative;
      }
      div {
        background-color: yellow;
        height: 200px;
        width: 100%;
        position: fixed;
        bottom: 0;
        z-index: 1;
        border-top: 2px solid gold;
      }
    </style>
  </head>
  <body>
    <main>
      <h2>This is the header</h2>
      <div>Some text aligns to the bottom</div>
    </main>
  </body>
</html>