align-items
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
CSS の align-items
プロパティは、すべての直接の子要素に集合として align-self
の値を設定します。フレックスボックスでは交差軸方向のアイテムの配置を制御します。グリッドレイアウトでは、グリッド領域におけるアイテムのブロック軸方向の配置を制御します。
試してみましょう
このデモは、グリッドレイアウトを使用して 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;
値
normal
-
このキーワードの効果は現在のレイアウトモードに依存します。
- 絶対位置指定レイアウトでは、このキーワードは置換絶対位置指定ボックスにおける
start
のように動作し、他のすべての絶対位置指定ボックスではstretch
として動作します。 - 絶対位置指定レイアウトの静的位置では、キーワードは
stretch
として動作します。 - フレックスアイテムについては、このキーワードは
stretch
として動作します。 - グリッドアイテムについては、このキーワードは
stretch
の一つと似た動作をしますが、ボックスにアスペクト比や内在的な寸法がある場合は、start
のように動作します。 - このプロパティはブロックレベルボックスや、表のセルには適用されません。
- 絶対位置指定レイアウトでは、このキーワードは置換絶対位置指定ボックスにおける
center
-
フレックスアイテムのマージンボックスは、交差軸上の中央に配置されます。アイテムの交差軸のサイズがフレックスコンテナーより大きい場合は、両方向へ均等にはみ出します。
start
-
そのアイテムは、互いにその軸の配置コンテナーの先頭側の端に寄せられます。
end
-
そのアイテムは、互いにその軸の配置コンテナーの末尾側の端に寄せられます。
self-start
-
そのアイテムは、その軸の配置コンテナーで、そのアイテムの先頭側の端に寄せられます。
self-end
-
そのアイテムは、その軸の配置コンテナーで、そのアイテムの末尾側の端に寄せられます。
baseline
,first baseline
,last baseline
-
すべてのフレックスアイテムは、フレックスコンテナーのベースラインに沿って配置されます。交差軸の先頭側マージンの端とベースラインの間の距離が最大のアイテムが、行の交差軸の先頭側の端に寄せられます。
stretch
-
アイテムが配置コンテナーより小さい場合、自動サイズのアイテムは、アイテムの幅と高さの制限を尊重しながら、コンテナーを埋めるために均等に拡大されます。
anchor-center
-
アンカー位置指定要素の場合、関連付けられたアンカー要素のブロック方向の中心にアイテムを配置します。
anchor-center
を使用してアンカーの中央に配置を参照してください。 safe
-
配置キーワードと共に使用します。選択されたキーワードによって、アイテムが配置コンテナーをあふれてデータの損失が発生する場合、アイテムは配置モードが
start
であったかのように配置されます。 unsafe
-
配置キーワードと共に使用します。アイテムの寸法と配置コンテナーとの関係、あふれることによってデータの損失が発生するかどうかにかかわらず、指定された値を尊重します。
また、フレックスボックスのために定義された 2 つの値があります。これらはフレックスモデルの軸の概念に基づいており、グリッドレイアウトでも同様に動作します。
flex-start
-
フレックスレイアウトでのみ用いられ、フレックスアイテムを、フレックスコンテナーの主軸の先頭側または交差軸の先頭側の端に寄せて配置します。フレックス整形コンテキスト以外で使用する場合、この値は
start
として動作します。 flex-end
-
フレックスレイアウトでのみ用いられ、フレックスアイテムを、フレックスコンテナーの主軸の末尾側または交差軸の末尾側の端に寄せて配置します。フレックス整形コンテキスト以外で使用する場合、この値は
end
として動作します。
公式定義
初期値 | normal |
---|---|
適用対象 | すべての要素 |
継承 | なし |
計算値 | 指定通り |
アニメーションの種類 | 離散値 |
形式文法
例
CSS
コンテナーとアイテムに対して、確実に 2 行または 1 列、またはアイテムを保有しているようにスタイル設定します。 .flex
および .grid
クラスを定義し、 JavaScript でコンテナーに適用します。これらはコンテナーの display
値を設定し、背景色と境界線を変更することで、レイアウトが変更されたことを示す追加のインジケーターを提供します。 6 つのフレックスアイテムの背景色はそれぞれ異なり、 4 番目のアイテムは 2 行に、 6 番目のアイテムはフォントが拡大されています。
.flex,
.grid {
height: 200px;
width: 500px;
align-items: initial; /* ライブサンプルでこの値を変更 */
border: solid 5px transparent;
gap: 3px;
}
.flex {
display: flex;
flex-wrap: wrap;
background-color: #8c8c9f;
border-color: magenta;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, 100px);
background-color: #9f8c8c;
border-color: slateblue;
}
#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;
}
HTML
コンテナーの <div>
とその中に <div>
を 6 つ設置します。フォームの HTML とコンテナーのクラスを変更する JavaScript は、簡潔にするために隠してあります。
<div id="container" class="flex">
<div id="item1">1</div>
<div id="item2">2</div>
<div id="item3">3</div>
<div id="item4">4<br />2 行目</div>
<div id="item5">5</div>
<div id="item6">6</div>
</div>
結果
仕様書
Specification |
---|
CSS Box Alignment Module Level 3 # align-items-property |
CSS Flexible Box Layout Module Level 1 # align-items-property |
ブラウザーの互換性
BCD tables only load in the browser