【64-8】アイテム個別の配置を一括指定する place-selfショートハンド
最終更新日:2022年09月23日 (初回投稿日:2022年07月06日)
place-selfショートハンドプロパティは、
・justify-selfプロパティ(主軸)
・align-selfプロパティ(交差軸)
の2つを一括で指定するショートハンドです。
アイテム側に指定し、アイテムを個別に指定します。
ボックス配置は、下記のように記事を分けます。
- 【63】アイテム間の空きを指定する gap(row-gap, column-gap)
- 【64-1】ボックス配置の全体的なルール(9コのプロパティまとめ)
- 【64-2】ボックス配置の「整列キーワード」まとめ
- 【64-3】アイテムの配置・分布を指定する justify-content(主軸方向)
- 【64-4】アイテムの配置・分布を指定する align-content(交差軸方向)
- 【64-5】アイテムの配置・分布を指定するショートハンド place-content
- 【64-6】アイテム個別の配置を指定する justify-self (主軸方向)
- 【64-7】アイテム個別の配置を指定する align-self (交差軸方向)
- 【64-8】アイテム個別の配置を一括指定する place-selfショートハンド ←今日はココ
- 【64-9】アイテムの個別配置を一度に指定する justify-items (主軸方向)
- 【64-10】アイテムの個別配置を一度に指定する align-items (交差軸方向)
- 【64-11】アイテム配置を一括指定する place-itemsショートハンド
参考:
・CSS Box Alignment Module Level 3 | W3C Working Draft
・CSS ボックス配置 | MDN
place-selfショートハンドの値
place-selfショートハンドプロパティの値は、align-self と justify-self の値を「半角スペース」で区切って書きます。
place-selfプロパティの値 | |
---|---|
CSS構文 | <'align-self'> <'justify-self'>? |
グローバル値 | inherit; 親の値を継承 initial; 継承した親の値を解消しデフォルト値に戻す unset; 値を解除。親から継承されてるなら inherit、継承されてないなら initial と同じ動作 |
値の継承 | なし | 適用できる要素 | Gridアイテム ブロックレベルのボックス(テーブルセルは含まず) 絶対位置にされたボックス |
---|
CSS構文は、
<'align-self'> <'justify-self'>?
となっています。これを読み解くと、
align-self の値が先、justify-self の値が後と順番が決まっています。
また、<'justify-self'> に「?」が付いてるので、値1個でもOK ということです。
値が1個だと、両方のプロパティに同じ値が適用されます。
疑問符乗算子「?」は、省略可能で 0 回または 1 回出現することを意味します。
CSSの値の定義構文はこちら→ 値の定義構文 | MDN
2つのプロパティの値はこちらです。
justify-selfプロパティの値 | |
---|---|
CSS構文 | auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] autoがデフォルト値。 |
<baseline-position> | [ first | last ]? baseline baseline、first baseline、last baseline の3種の書き方。 baseline 単独で使うと first baseline と同義。 first baseline の代替配置は start、 last baseline の代替配置は end 。 注意:このキーワードはW3C仕様書の冒頭で「at-risk」に入ってて「勧告候補時に落とされるかも(may be dropped during the CR period)」とあるので無くなる可能性もあります。(2022年7月記) |
<overflow-position> | unsafe | safe 注意:この2つはW3C仕様書の冒頭で「at-risk」に入ってて「勧告候補時に落とされるかも(may be dropped during the CR period)」とあるので無くなる可能性もあります。(2022年7月記) |
<self-position> | center | start | end | self-start | self-end | flex-start | flex-end |
グローバル値 | justify-self: inherit; 親の値を継承 justify-self: initial; 継承した親の値を解消しデフォルト値に戻す justify-self: unset; 値を解除。親から継承されてるなら inherit、継承されてないなら initial と同じ動作 |
align-selfプロパティの値 | |
---|---|
CSS構文 | auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position> autoがデフォルト値。 |
<baseline-position> | [ first | last ]? baseline baseline、first baseline、last baseline の3種の書き方。 baseline 単独で使うと first baseline と同義。 first baseline の代替配置は start、 last baseline の代替配置は end 。 注意:このキーワードはW3C仕様書の冒頭で「at-risk」に入ってて「勧告候補時に落とされるかも(may be dropped during the CR period)」とあるので無くなる可能性もあります。(2022年7月記) |
<overflow-position> | unsafe | safe 注意:この2つはW3C仕様書の冒頭で「at-risk」に入ってて「勧告候補時に落とされるかも(may be dropped during the CR period)」とあるので無くなる可能性もあります。(2022年7月記) |
<self-position> | center | start | end | self-start | self-end | flex-start | flex-end |
グローバル値 | align-self: inherit; 親の値を継承 align-self: initial; 継承した親の値を解消しデフォルト値に戻す align-self: unset; 値を解除。親から継承されてるなら inherit、継承されてないなら initial と同じ動作 |
2つのプロパティの詳細は、前回・前々回の記事をご覧ください。
【64-6】アイテム個別の配置を指定する justify-self (主軸方向)
【64-7】アイテム個別の配置を指定する align-self (交差軸方向)
値が1個の場合の場合の注意点
値が1個の場合、align-self と justify-self の両方に同じ値が適用されます。
その場合、両方のプロパティに有効な値のみ 1個で指定できます。
どちらかに無効な値を 1個で指定した場合は、値そのものが無効になります。
ですので、justify-self でしか使えない right や left の値は単独では指定できません。
無効になると、何も指定していない状態 = 初期値の「auto」になります。
auto は normal を指定した状態で、normal は stretch と同じ。エリアいっぱいにアイテムを使います。
(auto、normal、stretch はどれを指定しても同じってことですね)
place-selfプロパティを使ってみた(サンプル)
place-selfショートハンドプロパティを使ってみます。
Grid Layout と Flexbox でサンプルを作ってみました。
Grid Layout での place-selfショートハンド
1番最初のアイテムに place-self を指定しています。
通常の横書きモードでのサンプルなので、主軸は左から右への横方向、交差軸は垂直方向です。
サンプルの HTMLやCSS の基本はこちら。
<div class="container">
<div>ITEM*</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
</div>
.container{
box-sizing: border-box;
border: 1px solid#ccc;
padding: 0;
display: grid;
grid-template-rows: repeat(2, 7em);
grid-template-columns: repeat(2, 50%);
}
.container div{
box-sizing:border-box;
padding:1em;
text-align:center;
}
.container div:nth-child(1) {
/*place-self:「値」; はここに追加していきます*/
background:#fcf}
.container div:nth-child(2) {background:#ffc}
.container div:nth-child(3) {background:#cfc}
.container div:nth-child(4) {background:#eee}
place-self: stretch center
place-self: center start
place-self: start end
place-self: center right
place-self: auto(ここから値1コのサンプルです)
(auto は初期値。何も指定しなければこれ)
place-self: normal(normalは stretch と同じ振る舞いになります)
place-self: stretch
place-self: end
place-self: start
place-self: center
place-self: baseline(first baselineと同じ)
place-self: last baseline
place-self: right
(right や left は align-selfに無い値なので単独で使うと無効。初期値のautoの状態です)
Flexbox での place-selfショートハンド
Flexbox の仕様書では、ボックス配置用のプロパティは、align-content、align-self、align-items、justify-content の4つしかありません。
というわけで、Flexアイテムには justify-self が効かないので、ショートハンドの place-self を使っても、2番目の値(justify-self)は無視されて、align-self の指定だけになります。
ですので、仕様書の「適用できる要素」に「フレックスアイテム」は含まれていないんですよね。
でもまあ Flexbox で place-self を指定してもエラーにならないようなので、一応サンプルを置いておきます。
1番最初のアイテムに place-self を指定しています。
サンプルの HTMLやCSS の基本はこちら。
<div class="con_flex">
<div>ITEM*</div>
<div>ITEM</div>
<div>ITEM</div>
<div>ITEM</div>
</div>
.con_flex{
box-sizing:border-box;
border:1px solid#ccc;
padding:0;
margin:0 0 .5em;
height:10em;
display:-webkit-flex;
display: flex;
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
}
.con_flex div{
-webkit-flex-basis:40%;
flex-basis:40%;
box-sizing:border-box;
padding:1em;
line-height:1em;
text-align:center;
}
.con_flex div:nth-child(1) {
/*place-self:「値」; はここに追加していきます*/
background:#aef}
.con_flex div:nth-child(2) {background:#fcc}
.con_flex div:nth-child(3) {background:#ccf}
.con_flex div:nth-child(4) {background:#fe9}
place-self: center start
2番目の値は無視されるので、align-self: center を指定したのと同じになります。
place-self: center right
2番目の値は無視されるので、上のサンプルと同様 align-self: center の指定です。
place-self: start end
同じく2番目の値は無視されて、align-self: start の指定です。
place-self: auto(ここから値1コのサンプルです)
(auto は初期値。何も指定しなければこれ。normalと同じになります)
place-self: normal
(normalは stretch と同じ振る舞いになります)
place-self: stretch
place-self: end
place-self: start
place-self: center
place-self: baseline(first baselineと同じ)
place-self: last baseline
place-self: right
(right や left は align-selfに無い値なので単独で使うと無効。初期値のautoの状態です)
次回予告
今回までの justify-self・align-self・place-selfショートハンドは、アイテム側に指定して、そのアイテムだけの配置方法を指定しました。
次回からは、○○-self の指定を、全アイテムに一発で指定するプロパティ justify-items・align-items・place-itemsショートハンドを使ってみよう。
まず次回は、justify-itemsプロパティ について見てみましょう。
これはコンテナ側に指定し、コンテナ内の全アイテムに対して justify-self の指定を一発で指定します。
- 関連記事
-
- 【65-2】結合子を使うセレクター(E F, E > F, E + F, E ~ F)
- (ちょっとメモ)「,」で区切る「セレクターリスト」
- 【65-1】エレメンタルセレクター(要素名で指定するセレクター)
- 【65】CSSのセレクターを整理しよう(セレクター 一覧)
- 【64-11】アイテム配置を一括指定する place-itemsショートハンド
- 【64-10】アイテムの個別配置を一度に指定する align-items (交差軸方向)
- 【64-9】アイテムの個別配置を一度に指定する justify-items (主軸方向)
- 【64-8】アイテム個別の配置を一括指定する place-selfショートハンド
- 【64-7】アイテム個別の配置を指定する align-self (交差軸方向)
- 【64-6】アイテム個別の配置を指定する justify-self (主軸方向)
- 【64-5】アイテムの配置・分布を指定するショートハンド place-content
- 【64-4】アイテムの配置・分布を指定する align-content(交差軸方向)
- 【64-3】アイテムの配置・分布を指定する justify-content(主軸方向)
- 【64-2】ボックス配置の「整列キーワード」まとめ
- 【64-1】ボックス配置の全体的なルール(9コのプロパティまとめ)
初心者にも使いやすい(と思う)レンタルサーバー
「初心者ですがレンタルサーバーはどこがいい?」というご質問をよくいただきます。
自由にファイルをアップロードできる自分のサーバがあると便利ですよね。ローカル環境じゃなくサーバ上で試してみたい時がありますからね。
私が使っているのは、
スターサーバーや ロリポップ!
です。どちらも管理画面がわかりやすく、マニュアルも充実していて、料金も安い。どちらもライトプラン以上で WordPress が使えます。
初心者が始めやすいサーバだと思います。
ちょっと料金は高いけど、さくらのレンタルサーバや、エックスサーバー
は、やはり老舗なのでおすすめです。
両方とも高スペックでコスパが良く、老舗でユーザーが多いので、質問する場がたくさんあります。初心者だけど仕事でサーバが欲しい場合は、安心なのではないかと思います。
スポンサーリンク