このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
place-self
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年1月.
* Some parts of this feature may have varying levels of support.
place-self はCSS の一括指定プロパティで、アイテムのブロック軸およびインライン軸に沿ったアイテムの配置 (すなわちalign-self およびjustify-self プロパティ) を一度に指定することができます。このプロパティは、ブロックレベルのボックス、絶対位置指定のボックス、グリッドアイテムに適用されます。 2 番目の値が設定されていない場合、最初の値がそちらにも使用されます。
In this article
試してみましょう
place-self: stretch center;place-self: center start;place-self: start end;place-self: end center;<section> <div> <div>One</div> <div>Two</div> <div>Three</div> </div></section>.example-container { border: 1px solid #c5c5c5; display: grid; width: 220px; grid-template-columns: 1fr 1fr; grid-auto-rows: 80px; grid-gap: 10px;}.example-container > div { background-color: rgb(0 0 255 / 0.2); border: 3px solid blue;}構成要素のプロパティ
根のプロパティは以下の CSS プロパティの一括指定です。
構文
/* キーワード値 */place-self: auto center;place-self: normal start;place-self: center normal;place-self: start auto;place-self: end normal;place-self: self-start auto;place-self: self-end normal;place-self: flex-start auto;place-self: flex-end normal;place-self: anchor-center;/* ベースラインによる配置 */place-self: baseline normal;place-self: first baseline auto;place-self: last baseline normal;place-self: stretch auto;/* グローバル値 */place-self: inherit;place-self: initial;place-self: revert;place-self: revert-layer;place-self: unset;値
auto親の
align-itemsの値で計算します。normalこのキーワードの効果は、現在のレイアウトモードに依存します。
- 絶対位置のレイアウトでは、このキーワードは置換の絶対位置ボックスには
startのように動作し、その他の絶対位置ボックスにはstretchのように動作します。 - 絶対位置指定レイアウトの固定位置指定時は、このキーワードは
stretchと同様に動作します。 - フレックスアイテムでは、このキーワードは
stretchと同様に動作します。 - グリッドアイテムでは、このキーワードは
stretchのうちの一つと似た動作をしますが、アスペクト比や内在的な寸法を持つボックスはstartのように動作します。 - ブロックレベルボックスと表のセルでは、プロパティは適用されません。
- 絶対位置のレイアウトでは、このキーワードは置換の絶対位置ボックスには
self-startアイテムは交差軸の開始側に対応する配置コンテナーの端に詰めて配置されます。
self-endアイテムは交差軸の終端側に対応する配置コンテナーの端に詰めて配置されます。
flex-startこのフレックスアイテムの交差軸の先頭側マージンが、行の交差軸の先頭側に詰められます。
flex-endこのフレックスアイテムの交差軸の末尾側マージンが、行の交差軸の末尾側に詰められます。
centerこのフレックスアイテムのマージンボックスが、行の交差軸方向の中央に配置されます。アイテムの交差軸方向の寸法がフレックスコンテナーよりも大きい場合は、両方向に均等にはみ出します。
baseline,first baseline.last baselinefirst-baseline 配置または last-baseline 配置への関与を指定します。ボックスの最初または最後のベースラインセットの配置ベースラインを、ベースライン共有グループ内のすべてのボックスで共有される最初または最後のベースラインセットで対応するベースラインに揃えます。
first baselineの代替配置はstart、last baselineの代替配置はendです。stretchアイテムの交差軸方向の寸法の合計値が、配置コンテナーの寸法よりも小さく、アイテムの寸法が
autoであった場合、アイテムの寸法はmax-height/max-width(または同等の機能) で課された制約を尊重しつつ、均等の寸法 (比例的ではない) に拡大されるので、autoが指定されたアイテムすべての寸法の合計は、ちょうど配置コンテナーの交差軸方向を埋めるようになります。anchor-centerアンカー位置指定要素の場合、関連付けられたアンカー要素のブロックおよびインライン方向の中心にアイテムを配置します。
anchor-centerを使用してアンカーの中央に配置を参照してください。
公式定義
| 初期値 | 一括指定の次の各プロパティとして
|
|---|---|
| 適用対象 | block-level boxes, absolutely-positioned boxes, and grid items |
| 継承 | なし |
| 計算値 | 一括指定の次の各プロパティとして
|
| アニメーションの種類 | 離散値 |
形式文法
place-self =
<'align-self'><'justify-self'>?
<align-self> =
auto|
<overflow-position>?[normal|<self-position>]|
stretch|
<baseline-position>|
anchor-center
<justify-self> =
auto|
<overflow-position>?[normal|<self-position>|left|right]|
stretch|
<baseline-position>|
anchor-center
<overflow-position> =
unsafe|
safe
<self-position> =
center|
start|
end|
self-start|
self-end|
flex-start|
flex-end
<baseline-position> =
[first|last]?&&
baseline
例
>基本的なデモ
以下の例では 2 x 2 のグリッドレイアウトを用意しました。最初にグリッドコンテナーにはjustify-items およびalign-items の値をstretch — 既定値 — に設定し、グリッドアイテムがセルの幅全体に広がるようにしています。
2 番目、3 番目、4 番目のグリッドアイテムは、別々なplace-self の値を指定し、これらが既定の配置をオーバーライドする様子を表示します。これらの値はグリッドアイテムの幅や高さを内容物の幅や高さに設定し、セルごとにブロック方向とインライン方向の両方で異なる位置に配置しています。
HTML
<article> <span>First</span> <span>Second</span> <span>Third</span> <span>Fourth</span></article>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: 80px; grid-gap: 10px; margin: 20px; width: 300px;}span:nth-child(2) { place-self: start center;}span:nth-child(3) { place-self: center start;}span:nth-child(4) { place-self: end;}article span { background-color: black; color: white; margin: 1px; text-align: center;}article,span { padding: 10px; border-radius: 7px;}結果
仕様書
| Specification |
|---|
| CSS Box Alignment Module Level 3> # place-self-property> |