align-items

Avatar of 34 Cross
34 Cross on (Updated on )

Take your JavaScript to the next level at Frontend Masters.

The align-items property is related to CSS layout. It effects how elements are aligned both in Flexbox and Grid layouts.

.container {
  display: flex;
  align-items: flex-start;
}

Syntax

align-items: flex-start | flex-end | center | baseline | stretch

The align-items property defines the default behavior for how items are laid out along the cross axis (perpendicular to the main axis).

Imagine a horizontal flexbox layout. That horizontal flow is the main axis, so align-items is the alignment opposite that, on the vertical axis. Bear in mind that changes when the main axis changes, and the cross axis changes with it.

You can think of align-items as the justify-content version for the cross-axis (perpendicular to the main-axis).

The rest of this article is fairly focused on flexbox rather than grid. The concepts are still very similar, but there are some differences. For example, in flexbox, the axises can change, where in grid they cannot. That effects things like flexbox having values like flex-start where in grid it is just start.

The align-items property accepts 5 different values:

  • flex-start: cross-start margin edge of the items is placed on the cross-start line
  • flex-end: cross-end margin edge of the items is placed on the cross-end line
  • center: items are centered in the cross-axis
  • baseline: items are aligned such as their baselines align
  • stretch (default): stretch to fill the container (still respect min-width/max-width)

The following figure helps understand how flex items are layed out depending on the align-items value.

from w3.org

Demo

The following demo shows how flex items are layed out depending on the align-items value:

  • The red list is set to flex-start
  • The yellow list is set to flex-end
  • The blue list is set to center
  • The green list is set to baseline
  • The pink list is set to stretch

Browser support

Browser support for align-items varies in its usage with flexbox and CSS Grid.

Flex layout

IEEdgeChromeFirefoxSafariOpera
11All21-51 1
51+
20+7-8 1
9+
12.1+
iOS Safari Android ChromeAndroid FirefoxAndroid BrowserOpera Mobile
7-8.4 1
9+
AllAll92+12.1+
Source: caniuse

1 Supported with prefix -webkit-

Grid layout

IEEdgeFirefoxChromeSafariOpera
All16+52+57+10.1+44+
iOS Safari Android ChromeAndroid FirefoxAndroid BrowserOpera Mobile
10.3+AllAllAll64+
Source: caniuse

More information