justify-items
CSS の justify-items プロパティは、ボックスのすべてのアイテムに既定の justify-self を定義し、それぞれのボックスの調整を適切な軸に沿って、既定の方法で行ないます。
試してみましょう
このプロパティの効果は、現在のレイアウトモードに依存します。
構文
css
/* 基本キーワード */
justify-items: auto;
justify-items: normal;
justify-items: stretch;
/* 位置による配置 */
justify-items: center; /* 中央付近にアイテムを集める */
justify-items: start; /* 先頭側にアイテムを集める */
justify-items: end; /* 末尾側にアイテムを集める */
justify-items: flex-start; /* 'start' と同等です。なお、 justify-items はフレックスボックスレイアウト内では無視されます。 */
justify-items: flex-end; /* 'end' と同等です。なお、 justify-items はフレックスボックスレイアウト内では無視されます。 */
justify-items: self-start;
justify-items: self-end;
justify-items: left; /* 左側にアイテムを集める */
justify-items: right; /* 右側にアイテムを集める */
/* ベースラインの配置 */
justify-items: baseline;
justify-items: first baseline;
justify-items: last baseline;
/* あふれたときの配置 (位置による配置時のみ) */
justify-items: safe center;
justify-items: unsafe center;
/* 従来の配置 */
justify-items: legacy right;
justify-items: legacy left;
justify-items: legacy center;
/* グローバル値 */
justify-items: inherit;
justify-items: initial;
justify-items: revert;
justify-items: unset;
このプロパティは 4 つの異なる形式のうち 1 つを取ることができます。
- 基本キーワード: キーワード値
normal,auto,stretchのうちの一つ。 - ベースラインによる配置:
baselineキーワードに加えて、任意でfirstまたはlastのどちらか。 - 位置による配置:
center,start,end,flex-start,flex-end,self-start,self-end,left,rightのうちの一つ。加えて任意でsafeまたはunsafe。 - 歴史的な配置:
legacyキーワードに続いて、leftまたはrightのどちらかの値。
値
auto-
使用される値は、ボックスに親があれば、親ボックスの
justify-itemsプロパティ、そうでなければ絶対位置であり、このような場合、autoはnormalを表します。 normal-
このキーワードの効果は、現在のレイアウトモードに依存します。
- ブロックレベルレイアウトでは、このキーワードは
startの別名です。 - 絶対位置のレイアウトでは、このキーワードは置換の絶対位置ボックスには
startのように動作し、その他の絶対位置ボックスにはstretchのように動作します。 - 表のセルレイアウトでは、このキーワードは意味を持たず、無視されます。
- フレックスボックスレイアウトでは、このキーワードは意味を持たず、無視されます。
- グリッドレイアウトでは、このキーワードは
stretchのうちの一つと似た動作をしますが、アスペクト比や固有の寸法を持つボックスはstartのように振舞います。
- ブロックレベルレイアウトでは、このキーワードは
start-
アイテムは適切な軸で配置コンテナーの先頭側に向かって、互いに接するように詰められます。
end-
アイテムは適切な軸で配置コンテナーの末尾側に向かって、互いに接するように詰められます。
flex-start-
フレックスコンテナーの子ではないアイテムにおいては、この値は
startのように扱われます。 flex-end-
フレックスコンテナーの子ではないアイテムにおいては、この値は
endのように扱われます。 self-start-
アイテムは適切な軸で、アイテムの先頭側にある配置コンテナーの辺に向けて、互いに接するよう詰められます。
self-end-
アイテムは適切な軸で、アイテムの末尾側にある配置コンテナーの辺に向けて、互いに接するよう詰められます。
center-
アイテムは配置コンテナーの中央で、互いに接するように詰められます。
left-
アイテムは配置コンテナーの左端に向かって、互いに接するように詰められます。プロパティの軸がインライン軸に平行でない場合は、この値は
startのように動作します。 right-
アイテムは配置コンテナーの右端に向かって、互いに接するように詰められます。プロパティの軸がインライン軸に平行ではない場合は、この値は
startのように動作します。 baseline,first baseline,last baseline-
first- または last-baseline 配置への参加を指定します。ボックスの最初または最後のベースラインセットの配置ベースラインを、ベースライン共有グループ内のすべてのボックスで共有される最初または最後のベースラインセットで対応するベースラインに揃えます。
first baselineの代替配置はstart、last baselineの代替配置はendです。 stretch-
アイテムの寸法の合計が配置コンテナーの寸法より小さい場合に、寸法が
autoであるすべてのアイテムは (比例的にではなく) 均等に引き伸ばされます。ただし、max-height/max-width(あるいは同等の機能) による制限は尊重します。これにより、寸法の合計が配置コンテナーを主軸に沿って完全に埋めるようになります。 safe-
アイテムの寸法が配置コンテナーをあふれた場合、アイテムは配置モードが
startであったかのように配置されます。 unsafe-
アイテムのと配置コンテナーの寸法の関係にかかわらず、指定した値を尊重します。
legacy-
値がボックスの子孫に継承されるようにします。なお、子孫が
justify-self: autoの値を持っている場合、legacyキーワードは子孫からは考慮されず、関連付けられたleft,right,centerの値のみが継承されます。
公式定義
形式文法
justify-items =
normal |
stretch |
<baseline-position> |
<overflow-position>? [ <self-position> | left | right ] |
legacy |
legacy && [ left | right | center ]
<baseline-position> =
[ first | last ]? &&
baseline
<overflow-position> =
unsafe |
safe
<self-position> =
center |
start |
end |
self-start |
self-end |
flex-start |
flex-end
例
単純なデモ
次の例では、シンプルな 2 x 2 のグリッドレイアウトを示します。初期状態では、グリッドコンテナーには justify-items の値として stretch (既定値) が与えられており、グリッドアイテムはそのセルの幅全体に広がっています。
しかし、グリッドコンテナの上にマウスカーソルを置いたり、タブを押したりすると、グリッドアイテムには justify-items の値である center が与えられ、グリッドアイテムの幅はコンテンツの幅と同じだけ広がり、セルの中心に整列します。
HTML
html
<article class="container" tabindex="0">
<span>First child</span>
<span>Second child</span>
<span>Third child</span>
<span>Fourth child</span>
</article>
CSS
css
html {
font-family: helvetica, arial, sans-serif;
letter-spacing: 1px;
}
article {
background-color: red;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
width: 300px;
justify-items: stretch;
}
article:hover, article:focus {
justify-items: center;
}
article span {
background-color: black;
color: white;
margin: 1px;
text-align: center;
}
article, span {
padding: 10px;
border-radius: 7px;
}
article {
margin: 20px;
}
結果
仕様書
| Specification |
|---|
| CSS Box Alignment Module Level 3 # justify-items-property |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- CSS グリッドガイド: CSS グリッドレイアウトのボックス配置
- CSS ボックス配置
place-items一括指定プロパティjustify-selfプロパティalign-itemsプロパティ