X

Headline

This is an important message requiring you to make a choice if you're based in the EU.

How to Align the Content of a Div to the Bottom

CSS allows to align the content of a <div> to 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.

1. Create HTML

  • Create <div> with the class “main”. It includes three other divs.
  • Place <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 the id with the 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>

2. Add CSS

  • Use the border, float, height, width, position properties to style the "main" class. The float property defines 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 hex value for the color.
  • Use the text-align property for aligning the inner content of a block element.
  • Use the bottom and left properties. The bottom property specifies the bottom position of an element in combination with the position property. The left property specifies the left position of an element in combination with the position property.

The float property is ignored if elements are absolutely positioned (position: absolute).

.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;                          
      left:0;                          
      }

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

Here is the result of our code

<!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;                          
      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>

Let’s see another example where the content of a div is aligned to the bottom on the right side.

Example

<!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>

Let’s see another example where the content of a div is aligned to the bottom of the center.

Example

<!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;                          
      width:100%;
      text-align:center;
      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>

In this example, we set the width of the bottom div 100%.

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 as a column, but not both together. In the following example, we used flex-direction property with the "column" value. The flex-direction property defines the main axis of a 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 should be used with the display property set to "flex". For aligning the items vertically use the align-items property.

Example

<!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>

Let’s see another example with CSS align-items property. It defines the default alignment for flex items. It is just like justify-content property but the vertical version.

Notice that some browsers do not support display:flex, use prefixes listed below.

display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;

Notice that we have to use -Webkit- and -Moz- extensions with the align-items property to be supported by all browsers.

Example

<!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 another example with the position property. In our first example, we also use position property with the "relative" value for the HTML <main> tag and with the "absolute" value for the bottom div.

In this example, we use position property with the "fixed" value for the <div>. The z-index property specifies the z-order of an element and its descendants or flexes items.

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

Example

<!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>

Do you find this helpful?

Related articles