このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
place-content
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月.
place-content はCSS の一括指定プロパティで、ブロック方向とインライン方向の内容物の配置 (すなわちalign-content およびjustify-content) を、グリッドやフレックスボックスなどのレイアウトシステムにおいて、一度に指定することができます。
In this article
試してみましょう
place-content: end space-between;place-content: space-around start;place-content: start space-evenly;place-content: end center;place-content: end;<section> <div> <div> <div>One</div> <div>Two</div> <div>Three</div> </div> </div></section>#example-element { border: 1px solid #c5c5c5; display: grid; grid-template-columns: 60px 60px; grid-auto-rows: 40px; height: 180px; width: 220px;}#example-element > div { background-color: rgba(0, 0, 255, 0.2); border: 3px solid blue;}構成要素のプロパティ
このプロパティは以下の CSS プロパティの一括指定です。
構文
/* 位置による配置 *//* align-content は left および right の値を取りません */place-content: center start;place-content: start center;place-content: end left;place-content: flex-start center;place-content: flex-end center;/* ベースラインによる配置 *//* justify-content は baseline の値を取りません */place-content: baseline center;place-content: first baseline space-evenly;place-content: last baseline right;/* 均等配置 */place-content: space-between space-evenly;place-content: space-around space-evenly;place-content: space-evenly stretch;place-content: stretch space-evenly;/* グローバル値 */place-content: inherit;place-content: initial;place-content: revert;place-content: revert-layer;place-content: unset;最初の値はalign-content プロパティの値で、2 番目の値はjustify-content の値です。
メモ:2 番目の値がない場合、最初の値に両方に有効な値が設定されていれば、両方に使用されます。どちらかに無効な値であれば、値自体が無効になります。
値
start各アイテムは、適切な軸方向で配置コンテナーの先頭側の端に向けて互いに寄せて配置されます。
end各アイテムは、適切な軸方向で配置コンテナーの末尾側の端に向けて互いに寄せて配置されます。
flex-start各アイテムは、フレックスコンテナーに依存して、主軸または交差軸の先頭側である配置コンテナーの端に向けて互いに寄せて配置されます。これはフレックスレイアウトのアイテムのみに適用されます。フレックスコンテナーの子ではないアイテムでは、この値は
startのように扱われます。flex-end各アイテムは、フレックスコンテナーに依存して、主軸または交差軸の末尾側である配置コンテナーの端に向けて互いに寄せて配置されます。これはフレックスレイアウトのアイテムのみに適用されます。フレックスコンテナーの子ではないアイテムでは、この値は
endのように扱われます。center各アイテムは、配置コンテナーの中央に向けて互いに寄せて配置されます。
left各アイテムは、適切な軸方向で配置コンテナーの左側の端に向けて互いに寄せて配置されます。プロパティの軸がインライン軸と平行でない場合は、この値は
startのように動作します。right各アイテムは、適切な軸方向で配置コンテナーの右側の端に向けて互いに寄せて配置されます。プロパティの軸がインライン軸と平行でない場合は、この値は
startのように動作します。space-between各アイテムは、配置コンテナーの中で均等に配置されます。隣接するアイテム同士の間隔は同じになります。最初のアイテムは主軸の先頭側に寄せられ、最後のアイテムは主軸の末尾側に寄せられます。
baseline,first baseline,last baselinefirst-baseline 配置または last-baseline 配置への関与を指定します。ボックスの最初または最後のベースラインセットの配置ベースラインを、ベースライン共有グループ内のすべてのボックスで共有される最初または最後のベースラインセットで対応するベースラインに揃えます。
first baselineの代替配置はstart、last baselineの代替配置はendです。space-around各アイテムは、配置コンテナーの中で均等に配置されます。隣接するアイテム同士の間隔は同じになります。最初のアイテムの前と最後のアイテムの後の余白は、隣接するアイテム同士の間隔の半分の幅になります。
space-evenly各アイテムは、配置コンテナーの中で均等に配置されます。隣接するアイテム同士の間隔、最初のアイテムの前の余白、最後のアイテムの後の余白は、まったく同じ幅になります。
stretch各アイテムの寸法の合計が配置コンテナーの寸法よりも小さい場合、寸法が
autoのアイテムは、max-height/max-width(または同等の機能) での制約を尊重しつつ、 (比例的にではなく) 均等に引き伸ばされ、寸法の合計が配置コンテナーを満たすようになります。safe配置キーワードと並べて使用します。選択されたキーワードが、アイテムが配置コンテナーをオーバーフローしてデータ損失を引き起こす場合には、アイテムは代わりに、配置モードが
startであるかのように配置されます。unsafe配置キーワードと並べて使用します。アイテムと配置コンテナーの相対サイズに関係なく、またデータ損失の原因となるオーバーフローが発生するかどうかに関係なく、指定された配置値が優先されます。
公式定義
| 初期値 | 一括指定の次の各プロパティとして
|
|---|---|
| 適用対象 | 複数行のフレックスコンテナー |
| 継承 | なし |
| 計算値 | 一括指定の次の各プロパティとして
|
| アニメーションの種類 | 離散値 |
形式文法
place-content =
<'align-content'><'justify-content'>?
<align-content> =
normal|
<baseline-position>|
<content-distribution>|
<overflow-position>?<content-position>
<justify-content> =
normal|
<content-distribution>|
<overflow-position>?[<content-position>|left|right]
<baseline-position> =
[first|last]?&&
baseline
<content-distribution> =
space-between|
space-around|
space-evenly|
stretch
<overflow-position> =
unsafe|
safe
<content-position> =
center|
start|
end|
flex-start|
flex-end
例
>フレックスコンテナーのコンテンツの配置
HTML
<div> <div>Lorem</div> <div>Lorem<br />ipsum</div> <div>Lorem</div> <div>Lorem<br />ipsum</div> <div></div> <div></div></div><code>writing-mode:</code><select> <option value="horizontal-tb" selected>horizontal-tb</option> <option value="vertical-rl">vertical-rl</option> <option value="vertical-lr">vertical-lr</option> <option value="sideways-rl">sideways-rl</option> <option value="sideways-lr">sideways-lr</option></select><code>;</code><br /><code>direction:</code><select> <option value="ltr" selected>ltr</option> <option value="rtl">rtl</option></select><code>;</code><br /><code>place-content:</code><select> <option value="normal">normal</option> <option value="first baseline">first baseline</option> <option value="last baseline">last baseline</option> <option value="baseline">baseline</option> <option value="space-between">space-between</option> <option value="space-around">space-around</option> <option value="space-evenly" selected>space-evenly</option> <option value="stretch">stretch</option> <option value="center">center</option> <option value="start">start</option> <option value="end">end</option> <option value="flex-start">flex-start</option> <option value="flex-end">flex-end</option> <option value="safe">safe</option> <option value="unsafe">unsafe</option></select><select> <option value="normal">normal</option> <option value="space-between">space-between</option> <option value="space-around">space-around</option> <option value="space-evenly">space-evenly</option> <option value="stretch">stretch</option> <option value="center" selected>center</option> <option value="start">start</option> <option value="end">end</option> <option value="flex-start">flex-start</option> <option value="flex-end">flex-end</option> <option value="left">left</option> <option value="right">right</option> <option value="safe">safe</option> <option value="unsafe">unsafe</option></select><code>;</code>function update() { document.getElementById("container").style.placeContent = `${document.getElementById("alignContentAlignment").value} ` + `${document.getElementById("justifyContentAlignment").value}`;}const alignContentAlignment = document.getElementById("alignContentAlignment");alignContentAlignment.addEventListener("change", update);const justifyContentAlignment = document.getElementById( "justifyContentAlignment",);justifyContentAlignment.addEventListener("change", update);const writingM = document.getElementById("writingMode");writingM.addEventListener("change", (evt) => { document.getElementById("container").style.writingMode = evt.target.value;});const direction = document.getElementById("direction");direction.addEventListener("change", (evt) => { document.getElementById("container").style.direction = evt.target.value;});CSS
#container { display: flex; height: 240px; width: 240px; flex-wrap: wrap; background-color: #8c8c8c; writing-mode: horizontal-tb; /* Can be changed in the live sample */ direction: ltr; /* Can be changed in the live sample */ place-content: flex-end center; /* Can be changed in the live sample */}div > div { border: 2px solid #8c8c8c; width: 50px; background-color: #a0c8ff;}.small { font-size: 12px; height: 40px;}.large { font-size: 14px; height: 50px;}結果
仕様書
| Specification |
|---|
| CSS Box Alignment Module Level 3> # place-content> |