- Bottom-align headers with CSS without a container
- Recent posts
- CSS vertical-align Property
- Syntax
- Example of the vertical-align property with the «sub» value:
- Result
- Example of the vertical-align property with the «middle» value:
- Example of the vertical-align property with the «super» value:
- Example of the vertical-align property with the «top» and «bottom» values:
- Values
- Browser support
- How to Align the Content of a Div Element to the Bottom
- Create HTML
- Add CSS
- Example of aligning the content to the left bottom:
- Result
- W3docs
- Example of aligning the content to the right bottom:
- Example of aligning the content to the center bottom:
- Example of aligning the content to the bottom with Flexbox:
- Example of aligning the content to the bottom with the align-items property:
- Example of aligning the content to the bottom with the «fixed» value of the position property:
Bottom-align headers with CSS without a container
When you place text in a block element in HTML with a defined height , the text normally ends up at the top of the block. In some cases you may want to change this; for example, maybe a heading or caption will have a background image and should align to the bottom of the box for aesthetic purposes.
In other words, we want to go from this:
It would also be great not to require additional HTML elements to make this work. Fortunately, it’s possible, albeit with some hackish use of before and display: table .
.bottom height: 100px; background: #eee; display: table; width: 100%; box-sizing: border-box; padding: 15px; > .bottom:before display: table-row; height: 100%; content: ""; >
Tested on current versions of Chrome, Safari, Firefox, and IE , and even back to IE 8.
Recent posts
© 2009-2023 Jason Stitt. These are my personal views and don’t represent any past or present employer.
CSS vertical-align Property
The vertical-align property specifies the vertical alignment of an inline, inline-block or table-cell box. Inline-level elements include images, text, buttons, etc.
This property works only in the following contexts:
We can’t use the vertical-align property to vertically align block-level elements.
Initial Value | baseline |
Applies to | Inline-level and table-cell elements, also applies to ::first-letter and ::first-line. |
Inherited | No. |
Animatable | Yes. The vertical alignment is animatable. |
Version | CSS1 |
DOM Syntax | object.style.verticalAlign = «middle»; |
Syntax
vertical-align: baseline | length | sub | super | top | text-top | middle | bottom| text-bottom | initial | inherit;
Example of the vertical-align property with the «sub» value:
html> html> head> title>Title of the document title> style> span < vertical-align: sub; > style> head> body> h2>Vertical-align property example h2> p>This is some paragraph with span>vertical-align span> property. p> body> html>
Result
Example of the vertical-align property with the «middle» value:
html> html> head> title>Title of the document title> style> span < vertical-align: middle; > style> head> body> h2>Vertical-align property example h2> p>This is some paragraph with span>vertical-align span> property. p> body> html>
Example of the vertical-align property with the «super» value:
html> html> head> title>Title of the document title> style> span < vertical-align: super; > style> head> body> h2>Vertical-align property example h2> p>This is some paragraph with span>vertical-align span> property. p> body> html>
Example of the vertical-align property with the «top» and «bottom» values:
html> html> head> title>Title of the document title> style> table < width: 100%; border-collapse: collapse; > table, th, td < border: 1px solid #cccccc; > td < height: 100px; > .top < vertical-align: top; > .bottom < vertical-align: bottom; > style> head> body> h2>Vertical-align property example h2> table> tr> th>Bottom th> th>Middle th> th>Top th> tr> tr> td class="bottom">Some text td> td>Some text td> td class="top">Some text td> tr> table> body> html>
Values
Value | Descriptions | Play it |
---|---|---|
baseline | Aligns the baseline of the element with the baseline of its parent. This is a default value. | Play it » |
length | Raise (positive value) or lower (negative value) the box by this distance. Negative values are allowed. | Play it » |
sub | Lower the baseline of the box to the proper position for subscripts of the parent’s box. | Play it » |
super | Raise the baseline of the box to the proper position for superscripts of the parent’s box. | Play it » |
top | Align the top of the aligned subtree with the top of the line box. | Play it » |
text-top | Align the top of the box with the top of the parent’s content area. | Play it » |
middle | Align the vertical midpoint of the box with the baseline of the parent box plus half the x-height of the parent. | Play it » |
bottom | Align the bottom of the aligned subtree with the bottom of the line box. | Play it » |
text-bottom | Align the bottom of the box with the bottom of the parent’s content area. | Play it » |
initial | It makes the property use its default value. | Play it » |
inherit | It inherits the property from its parents element. |
Browser support
How to Align the Content of a Div Element to the Bottom
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
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 . 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.
.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:
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
In the following example, the content of a is aligned to the bottom on the right side.
Example of aligning the content to the right bottom:
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 is aligned to the bottom at the center. We set the width of the bottom to «100%».
Example of aligning the content to the center bottom:
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 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:
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.
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:
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 tag and with the «fixed» value for the . The z-index property specifies the z-order of an element and its descendants or flex items.
Example of aligning the content to the bottom with the «fixed» value of the position property:
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>