vertical-align
Quick Summary for vertical-align
The vertical-align CSS property sets vertical alignment of an inline, inline-block or table-cell box.
Code Usage for vertical-align
/* Keyword values */ vertical-align: baseline; vertical-align: sub; vertical-align: super; vertical-align: text-top; vertical-align: text-bottom; vertical-align: middle; vertical-align: top; vertical-align: bottom;  /* <length> values */ vertical-align: 10em; vertical-align: 4px;  /* <percentage> values */ vertical-align: 20%;  /* Global values */ vertical-align: inherit; vertical-align: initial; vertical-align: revert; vertical-align: unset; 
More Details for vertical-align

vertical-align

The vertical-align CSS property sets vertical alignment of an inline, inline-block or table-cell box.

The vertical-align property can be used in two contexts:

To vertically align an inline element's box inside its containing line box. For example, it could be used to vertically position an image in a line of text. To vertically align the content of a cell in a table.

Note that vertical-align only applies to inline, inline-block and table-cell elements: you can't use it to vertically align block-level elements.

Syntax

/* Keyword values */ vertical-align: baseline; vertical-align: sub; vertical-align: super; vertical-align: text-top; vertical-align: text-bottom; vertical-align: middle; vertical-align: top; vertical-align: bottom;  /* <length> values */ vertical-align: 10em; vertical-align: 4px;  /* <percentage> values */ vertical-align: 20%;  /* Global values */ vertical-align: inherit; vertical-align: initial; vertical-align: revert; vertical-align: unset; 

The vertical-align property is specified as one of the values listed below.

Values for inline elements

Parent-relative values

These values vertically align the element relative to its parent element:

baseline

Aligns the baseline of the element with the baseline of its parent. The baseline of some replaced elements, like <textarea>, is not specified by the HTML specification, meaning that their behavior with this keyword may vary between browsers.

sub

Aligns the baseline of the element with the subscript-baseline of its parent.

super

Aligns the baseline of the element with the superscript-baseline of its parent.

text-top

Aligns the top of the element with the top of the parent element's font.

text-bottom

Aligns the bottom of the element with the bottom of the parent element's font.

middle

Aligns the middle of the element with the baseline plus half the x-height of the parent.

<length>

Aligns the baseline of the element to the given length above the baseline of its parent. A negative value is allowed.

<percentage>

Aligns the baseline of the element to the given percentage above the baseline of its parent, with the value being a percentage of the line-height property. A negative value is allowed.

Line-relative values

The following values vertically align the element relative to the entire line:

top

Aligns the top of the element and its descendants with the top of the entire line.

bottom

Aligns the bottom of the element and its descendants with the bottom of the entire line.

For elements that do not have a baseline, the bottom margin edge is used instead.

Values for table cells

baseline (and sub, super, text-top, text-bottom, <length>, and <percentage>)

Aligns the baseline of the cell with the baseline of all other cells in the row that are baseline-aligned.

top

Aligns the top padding edge of the cell with the top of the row.

middle

Centers the padding box of the cell within the row.

bottom

Aligns the bottom padding edge of the cell with the bottom of the row.

Negative values are allowed.

Formal definition

Initial valuebaseline
Applies toinline-level and table-cell elements. It also applies to ::first-letter and ::first-line.
Inheritedno
Percentagesrefer to the line-height of the element itself
Computed valuefor percentage and length values, the absolute length, otherwise the keyword as specified
Animation typea length

Formal syntax

baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>

Examples

Basic example

HTML
<div>An <img src="frame_image.svg" alt="link" width="32" height="32" /> image with a default alignment.</div> <div>An <img class="top" src="frame_image.svg" alt="link" width="32" height="32" /> image with a text-top alignment.</div> <div>An <img class="bottom" src="frame_image.svg" alt="link" width="32" height="32" /> image with a text-bottom alignment.</div> <div>An <img class="middle" src="frame_image.svg" alt="link" width="32" height="32" /> image with a middle alignment.</div> 
CSS
img.top { vertical-align: text-top; } img.bottom { vertical-align: text-bottom; } img.middle { vertical-align: middle; } 
Result

Vertical alignment in a line box

HTML
<p> top:         <img style="vertical-align: top" src="star.png"/> middle:      <img style="vertical-align: middle" src="star.png"/> bottom:      <img style="vertical-align: bottom" src="star.png"/> super:       <img style="vertical-align: super" src="star.png"/> sub:         <img style="vertical-align: sub" src="star.png"/> </p>  <p> text-top:    <img style="vertical-align: text-top" src="star.png"/> text-bottom: <img style="vertical-align: text-bottom" src="star.png"/> 0.2em:       <img style="vertical-align: 0.2em" src="star.png"/> -1em:        <img style="vertical-align: -1em" src="star.png"/> 20%:         <img style="vertical-align: 20%" src="star.png"/> -100%:       <img style="vertical-align: -100%" src="star.png"/> </p> 
Result

Vertical alignment in a table cell

HTML
<table>   <tr>     <td style="vertical-align: baseline">baseline</td>     <td style="vertical-align: top">top</td>     <td style="vertical-align: middle">middle</td>     <td style="vertical-align: bottom">bottom</td>     <td>       <p>There is a theory which states that if ever anyone discovers exactly       what the Universe is for and why it is here, it will instantly disappear and       be replaced by something even more bizarre and inexplicable.</p>       <p>There is another theory which states that this has already happened.</p>     </td>   </tr> </table> 
CSS
table {   margin-left: auto;   margin-right: auto;   width: 80%; }  table, th, td {   border: 1px solid black; }  td {   padding: 0.5em;   font-family: monospace; } 
Result

Specifications

Specification
Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification # propdef-vertical-align

See also

Typical use cases of Flexbox, section "Center item" line-height, text-align, margin Understanding vertical-align, or "How (Not) To Vertically Center Content" Vertical-Align: All You Need To Know

Last modified: Aug 12, 2021, by MDN contributors

Select your preferred language English (US)DeutschEspañolFrançais日本語한국어PolskiPortuguês (do Brasil)Русский中文 (简体) Change language

No Items Found.

Add Comment
Type in a Nick Name here
 
Other Categories in CSS
css
Search CSS
Search CSS by entering your search text above.
Welcome

This is my test area for webdev. I keep a collection of code here, mostly for my reference. Also if i find a good link, i usually add it here and then forget about it. more...

Subscribe to weekly updates about things i have added to the site or thought interesting during the last week.

You could also follow me on twitter or not... does anyone even use twitter anymore?

If you found something useful or like my work, you can buy me a coffee here. Mmm Coffee. ☕

❤️👩‍💻🎮

🪦 2000 - 16 Oct 2022 - Boots
Random Quote
When i was a little kid, I was really scared of the dark. But then I came to understand, dark just means the absence of photons in the visible wavelength -- 400 to 700 nanometers. Then i thought, well, its really silly to be afraid of a lack of photons. Then i wasn't afraid of the dark anymore after that.
Elon Musk
Random CSS Property

scroll-margin-block-start

The scroll-margin-block-start property defines the margin of the scroll snap area at the start of the block dimension that is used for snapping this box to the snapport. The scroll snap area is determined by taking the transformed border box, finding its rectangular bounding box (axis-aligned in the scroll container's coordinate space), then adding the specified outsets.
scroll-margin-block-start css reference