1. ホーム
  2. CSS

【CSS】align-itemsの使い方を解説|Flexbox・Grid対応

Share

align-itemsは、FlexboxやGridレイアウトにおいて、要素の垂直方向の整列を制御するプロパティです。

デザインに一貫性を持たせたり、中央揃えを簡単に実現できる便利な機能です。

本記事では、その基本的な使い方から、Flexbox・Gridでの具体例まで丁寧に解説します。

align-itemsとは?

align-itemsは、親要素内での子要素の交差軸(通常は縦方向)における揃え方を指定するプロパティです。主にFlexboxやCSS Gridで使われ、すべての子要素に一括して適用されます。

主な値とその意味

意味
stretch子要素を親要素の高さいっぱいに引き伸ばす(初期値)
flex-start / start上端に揃える
flex-end / end下端に揃える
center垂直方向の中央に揃える
baselineテキストのベースラインを揃える

Flexboxでのalign-itemsの使い方

Flexboxでは、display: flex; を親要素に指定し、align-itemsで子要素の縦位置を調整します。

2番目の要素が他より高くなるように、文字サイズを大きくしています。内容するコンテンツの大きさが異なる場合、どのように表示されるかを確認してください。

normal(初期値)

<div class="flex-container">
  <div class="item">A</div>
  <div class="item">B</div>
  <div class="item">C</div>
</div>
.flex-container {
  display: flex;
  align-items: normal; /* 初期値 */
  background-color: #f5f5f5;
}

.item {
  background-color: #4caf50;
  color: white;
  padding: 10px;
  margin: 5px;
}
.item:nth-child(2) {
  font-size: 30px;
}
Preview

flex-start

<div class="flex-container">
  <div class="item">A</div>
  <div class="item">B</div>
  <div class="item">C</div>
</div>
.flex-container {
  display: flex;
  align-items: flex-start; /* 上に揃える */
  background-color: #f5f5f5;
}

.item {
  background-color: #4caf50;
  color: white;
  padding: 10px;
  margin: 5px;
}
.item:nth-child(2) {
  font-size: 30px;
}
Preview

flex-end

<div class="flex-container">
  <div class="item">A</div>
  <div class="item">B</div>
  <div class="item">C</div>
</div>
.flex-container {
  display: flex;
  align-items: flex-end; /* 下に揃える */
  background-color: #f5f5f5;
}

.item {
  background-color: #4caf50;
  color: white;
  padding: 10px;
  margin: 5px;
}
.item:nth-child(2) {
  font-size: 30px;
}
Preview

center

<div class="flex-container">
  <div class="item">A</div>
  <div class="item">B</div>
  <div class="item">C</div>
</div>
.flex-container {
  display: flex;
  align-items: center; /* 中央に揃える */
  background-color: #f5f5f5;
}

.item {
  background-color: #4caf50;
  color: white;
  padding: 10px;
  margin: 5px;
}
.item:nth-child(2) {
  font-size: 30px;
}
Preview

Gridレイアウトでのalign-itemsの使い方

Gridレイアウトでも同様に、親要素に display: grid; を指定し、align-itemsで縦方向の揃え方を設定します。

HTMLコード例

<div class="grid-container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
</div>

CSSコード例

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: flex-end; /* 下端に揃える */
  height: 150px;
  background-color: #e0f7fa;
}

.item {
  background-color: #00796b;
  color: white;
  padding: 10px;
  margin: 5px;
}

この例では、3つのグリッド要素が親要素の下端に揃っています。

align-itemsの値一覧

align-itemsには以下のような値があるので、実際に書いてみて挙動を確認してみてください。

/* 基本キーワード */
align-items: normal;
align-items: stretch;

/* 位置による配置 */
/* align-items は左と右の値を取らない */
align-items: center;
align-items: start;
align-items: end;
align-items: flex-start;
align-items: flex-end;
align-items: self-start;
align-items: self-end;
align-items: anchor-center;

/* ベースラインに配置する */
align-items: baseline;
align-items: first baseline;
align-items: last baseline; /* オーバーフロー配置 (位置指定要素のみ) */
align-items: safe center;
align-items: unsafe center;

/* グローバル値 */
align-items: inherit;
align-items: initial;
align-items: revert;
align-items: revert-layer;
align-items: unset;

よくある使い方と注意点

  • align-itemsは親要素に指定し、子要素すべてに影響します。
  • 特定の子要素だけ別の位置に揃えたい場合は、align-selfを使用します。
  • 初期値のstretchは、高さが指定されていない子要素に有効です。
  • テキストの位置を揃えたい場合は、baselineが有効です。

まとめ

align-itemsは、FlexboxやGridで子要素の縦位置を調整するために非常に便利なプロパティです。centerflex-endなどの値を適切に使い分けることで、より柔軟で整ったレイアウトが実現できます。

実際にコードを書いて動きを確認しながら学習していくのがおすすめです。ぜひ試してみてください。

参考サイト