Table of Contents
Introduction
vertical-align defines the vertical alignment for the content of a table cell or for an inline element against the rest of the inline flow.
vertical-align can take a % or length value, or it can take one of the following 8 keywords:
baseline: The default. Baseline of the element aligned to the baseline of the parent.
bottom: Bottom of the element aligned to the complete bottom of the line.
middle: Middle of the element aligned to half the x-height of the parent. The x-height is the height of the text without the character ascenders or descenders.
sub: Baseline of the element aligned to the subscript baseline of the parent.
super: Baseline of the element aligned to the superscript baseline of the parent.
text-bottom: Bottom of the element aligned to the bottom of the text.
text-top: Top of the element aligned to the top of the text.
top: Top of the element aligned to the top of the line.
If a length value is provided, the element is aligned at the specified length above the baseline of the parent.
If a % value is provided, the element is aligned at the specified % above the baseline of the parent, with the % being a reference to the line-height.
Here's an example using vertical-align:
.avatar {
vertical-align: middle;
}
Examples
It can be hard to visualize the effects of the different keyword values for vertical-align, so here are examples with an inline seashell emoji (🐚) placed with different values:
vertical-align: baseline
Sammy sells seashells 🐚 by the seashore.
vertical-align: bottom
Sammy sells seashells 🐚 by the seashore.
vertical-align: middle
Sammy sells seashells 🐚 by the seashore.
vertical-align: sub
Sammy sells seashells 🐚 by the seashore.
vertical-align: super
Sammy sells seashells 🐚 by the seashore.
vertical-align: text-bottom
Sammy sells seashells 🐚 by the seashore.
vertical-align: text-top
Sammy sells seashells 🐚 by the seashore.
vertical-align: top
Sammy sells seashells 🐚 by the seashore.
<style>
.demo_box { font-size: 26px; line-height: 40px; border-top: 1px dashed rgba(0,0,0,0.2); border-bottom: 1px dashed rgba(0,0,0,0.2); }
.demo_box span { display: inline-block; background: rgba(114, 186, 95, 0.4); font-size: 20px; line-height: 20px; }
</style>