--- title: align-items slug: Web/CSS/align-items tags: - CSS - CSS グリッドレイアウト - CSS フレックスボックス - CSS プロパティ - CSS ボックス配置 - Reference translation_of: Web/CSS/align-items ---

CSSalign-items プロパティは、すべての直接の子要素に集合として {{cssxref("align-self")}} の値を設定します。フレックスボックスでは{{glossary("Cross Axis", "交差軸")}}方向のアイテムの配置を制御します。グリッドレイアウトでは、{{glossary("Grid Areas", "グリッド領域")}}におけるアイテムのブロック軸方向の配置を制御します。

以下のデモは、グリッドレイアウトを使用して align-items のいくつかの値の動作を示しています。

{{EmbedInteractiveExample("pages/css/align-items.html")}}

構文

/* 基本キーワード */
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: 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: unset;

normal
キーワードの効果は現在のレイアウトモードに依存します。
flex-start
フレックスアイテムの cross-start 側マージンの端は、ラインの cross-start の端に寄せられます。
flex-end
フレックスアイテムの cross-end 側マージンの端は、ラインの cross-end の端に寄せられます。
center
フレックスアイテムのマージンボックスは、交差軸上の中央に配置されます。アイテムの cross-size がフレックスコンテナより大きい場合は、両方向へ均等にはみ出します。
start
そのアイテムは、互いにその軸の配置コンテナーの始点側の端に寄せられます。
end
そのアイテムは、互いにその軸の配置コンテナーの終点側の端に寄せられます。
self-start
そのアイテムは、その軸の配置コンテナーで、そのアイテムの始点側の端に寄せられます。
self-end
そのアイテムは、その軸の配置コンテナーで、そのアイテムの終点側の端に寄せられます。
baseline
first baseline
last baseline
すべてのフレックスアイテムは、ベースラインが一直線になるように配置されます。 cross-start 側マージンの端とベースラインの間の距離が最大のアイテムが、ラインの cross-start の端に寄せられます。
stretch
アイテムのマージンボックスの cross-size が、幅や高さの制約の範囲内でラインと同じになるように拡張されます。
safe
配置キーワードと共に使用します。選択されたキーワードによって、アイテムが配置コンテナーをあふれてデータの損失が発生する場合、アイテムは配置モードが start であったかのように配置されます。
unsafe
配置キーワードと共に使用します。アイテムの寸法と配置コンテナーとの関係、あふれることによってデータの損失が発生するかどうかにかかわらず、指定された値を尊重します。

形式文法

{{csssyntax}}

CSS

#container {
  height:200px;
  width: 240px;
  align-items: center; /* Can be changed in the live sample */
  background-color: #8c8c8c;
}

.flex {
  display: flex;
  flex-wrap: wrap;
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 50px);
}

div > div {
  box-sizing: border-box;
  border: 2px solid #8c8c8c;
  width: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#item1 {
  background-color: #8cffa0;
  min-height: 30px;
}

#item2 {
  background-color: #a0c8ff;
  min-height: 50px;
}

#item3 {
  background-color: #ffa08c;
  min-height: 40px;
}

#item4 {
  background-color: #ffff8c;
  min-height: 60px;
}

#item5 {
  background-color: #ff8cff;
  min-height: 70px;
}

#item6 {
  background-color: #8cffff;
  min-height: 50px;
  font-size: 30px;
}

select {
  font-size: 16px;
}

.row {
  margin-top: 10px;
}

HTML

<div id="container" class="flex">
  <div id="item1">1</div>
  <div id="item2">2</div>
  <div id="item3">3</div>
  <div id="item4">4</div>
  <div id="item5">5</div>
  <div id="item6">6</div>
</div>

<div class="row">
  <label for="display">display: </label>
  <select id="display">
    <option value="flex">flex</option>
    <option value="grid">grid</option>
  </select>
</div>

<div class="row">
  <label for="values">align-items: </label>
  <select id="values">
    <option value="normal">normal</option>
    <option value="flex-start">flex-start</option>
    <option value="flex-end">flex-end</option>
    <option value="center" selected>center</option>
    <option value="baseline">baseline</option>
    <option value="stretch">stretch</option>

    <option value="start">start</option>
    <option value="end">end</option>
    <option value="self-start">self-start</option>
    <option value="self-end">self-end</option>
    <option value="left">left</option>
    <option value="right">right</option>

    <option value="first baseline">first baseline</option>
    <option value="last baseline">last baseline</option>

    <option value="safe center">safe center</option>
    <option value="unsafe center">unsafe center</option>
    <option value="safe right">safe right</option>
    <option value="unsafe right">unsafe right</option>
    <option value="safe end">safe end</option>
    <option value="unsafe end">unsafe end</option>
    <option value="safe self-end">safe self-end</option>
    <option value="unsafe self-end">unsafe self-end</option>
    <option value="safe flex-end">safe flex-end</option>
    <option value="unsafe flex-end">unsafe flex-end</option>
  </select>
</div>

結果

{{EmbedLiveSample("Example", "260px", "290px")}}

仕様書

仕様書 状態 備考
{{SpecName("CSS3 Box Alignment", "#propdef-align-items", "align-items")}} {{Spec2("CSS3 Box Alignment")}} 最新の構文定義に更新。
{{SpecName('CSS3 Flexbox', '#propdef-align-items', 'align-items')}} {{Spec2('CSS3 Flexbox')}} 初回定義

{{cssinfo}}

ブラウザーの互換性

フレックスレイアウトでの対応

{{Compat("css.properties.align-items.flex_context")}}

グリッドレイアウトでの対応

{{Compat("css.properties.align-items.grid_context")}}

関連情報

{{CSSRef}}