Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

CSSプロパティ辞典

align-items

フレックスコンテナの交差軸方向におけるアイテムの揃え方を指定します。『flex-direction: row』の場合は縦方向、『column』の場合は横方向の配置を制御します。

サンプルコード
/* コンテナの高さいっぱいに伸ばす(初期値) */
.container { display: flex; align-items: stretch;}

/* 上揃え */
.container-start { display: flex; align-items: flex-start;}

/* 中央揃え */
.container-center { display: flex; align-items: center;}

/* 下揃え */
.container-end { display: flex; align-items: flex-end;}

/* テキストのベースラインで揃える */
.container-base { display: flex; align-items: baseline;}
指定可能な値一覧
概要
stretchアイテムをコンテナの交差軸方向いっぱいに伸ばします。初期値です。
flex-startアイテムを交差軸の先頭に揃えます。
flex-endアイテムを交差軸の末尾に揃えます。
centerアイテムを交差軸の中央に揃えます。
baselineアイテム内のテキストのベースライン(文字の底辺)に揃えます。
仕様情報
項目内容
初期値stretch
適用対象フレックスコンテナ(『display: flex』または『display: inline-flex』が指定された要素)
継承しない
アニメーション不可(discrete)
対応ブラウザ
Chrome Chrome
29 以降
28
27
26
25
24
23
22
21
↑ prefix『-webkit-』が必要
20 以前 ×
Firefox Firefox
20 以降
19 以前 ×
Safari Safari
9 以降
8
7
↑ prefix『-webkit-』が必要
6 以前 ×
Edge Edge
12 以降
全バージョンで対応しています
IE IE
11
10 ×
9 ×
8 ×
7 ×
6 ×
Opera Opera
16 以降
15
↑ prefix『-webkit-』が必要
14 以前 ×
iOS Safari iOS Safari
9 以降
8
7
↑ prefix『-webkit-』が必要
6 以前 ×
Android Android Browser
4.4 以降
3 以前 ×
Chrome Android Chrome Android
最新版
デスクトップ版と同等の対応です
Firefox Android Firefox Android
最新版
デスクトップ版と同等の対応です

※ バージョン情報は MDN / Can I Use に基づいています。

概要

『align-items』はフレックスコンテナに指定するプロパティで、交差軸方向(『flex-direction: row』の場合は縦方向)のアイテムの揃え方を一括で制御します。『justify-content』が主軸方向を担当し、『align-items』が交差軸方向を担当するという関係です。

各値の配置イメージ

stretch A B C 高さが揃う flex-start A(高い) B C center A(高い) B C flex-end A(高い) B C baseline A B C ベースライン

stretch(初期値)

アイテムにサイズ(『height』や『width』)が明示的に指定されていない場合、コンテナの交差軸方向いっぱいに引き伸ばされます。これが初期値であるため、『display: flex』を指定しただけでアイテムの高さが揃うのはこのプロパティの効果です。アイテムに明示的なサイズが指定されている場合は『stretch』でも伸ばされません。

center

アイテムを交差軸の中央に揃えます。『justify-content: center』と組み合わせることで、上下左右の完全な中央配置が実現できます。これはFlexboxの最も代表的な使い方の一つです。

/* 上下左右の完全中央配置 */
.perfect-center {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
}
baseline

各アイテム内のテキストのベースライン(文字の底辺の線)を揃えます。フォントサイズが異なるアイテムが混在する場合に、テキストの位置を自然に揃えたいときに使います。

/* フォントサイズの異なる要素のテキスト位置を揃える */
.nav {
    display: flex;
    align-items: baseline;
}
.nav-title { font-size: 24px;}
.nav-link { font-size: 14px;}
個別のアイテムだけ揃え方を変えたい場合

特定のアイテムだけ交差軸の揃え方を変えたい場合は、そのアイテムに『align-self』プロパティを指定します。『align-items』はコンテナ全体に対する一括指定で、『align-self』は個別のアイテムに対する指定です。

.container {
    display: flex;
    align-items: flex-start;  /* 全体は上揃え */
}
.special-item {
    align-self: flex-end;  /* このアイテムだけ下揃え */
}
関連プロパティ
プロパティ概要
justify-content主軸方向のアイテム配置を制御します。『align-items』と組み合わせて上下左右の配置を指定できます。
align-self個々のアイテムに対して交差軸方向の揃え方を個別に指定します。『align-items』を上書きします。
align-content複数行の場合の行間配置を制御します。『align-items』は行内のアイテム配置、『align-content』は行全体の配置です。
flex-direction主軸の方向を指定します。『align-items』が効く方向はこのプロパティの値によって変わります。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。