
チャッピー
Flexbox(フレックスボックス)を使っているときに「個別にこの子要素だけ位置を変えたい!」というときはどうするの?

こばゆた
そんなときに活躍するのが、今回紹介するalign-self
プロパティです。
この記事では、初心者の方でもわかりやすいようにalign-self
の役割や使い方、よくある間違いなどを丁寧に解説していきます。
今日のテーマ
- align-selfの使い方がわかる
- Flexbox内で個別に子要素の位置を変えられるようになる
1.align-selfとは?
align-self
はFlexboxで並んでいる子要素を個別に交差軸方向への指定ができます。
また子要素の幅(または高さ)を指定しないと親要素いっぱいに伸びます。
.container{
display: flex; /* 親要素にdisplay: flex;を指定 */
}
セレクター{
align-self: 値;
}
例:
<div class="container">
<div class="item boxa">aaa</div>
<div class="item boxb">bbb</div>
<div class="item boxc">ccc</div>
<div class="item boxd">ddd</div>
</div>
.boxb{
align-self: flex-end; /* 交差軸方向の終点に配置する */
}
表示例
aaa
bbb
ccc
ddd

こばゆた
boxbにalign-self: flex-end;
を指定したところ個別に動きが出ていますね。
では他の値ではどうなるか動かして遊んでみましょう。
またflex-direction
で軸を変えたときの動きも注目です。

きなこ
プロパティに入る値はいつもとあまり変わらないんだね
2.align-selfでよく使う値
値 | 効果 |
---|---|
auto | デフォルト |
flex-start | 交差軸方向の始点に配置 |
center | 交差軸方向の中心に配置 |
flex-end | 交差軸方向の終点に配置 |
stretch | 交差軸方向に伸ばして配置 |
baseline | 交差軸方向に文字のベースラインに沿って配置 |
See the Pen Untitled by kbyt (@kbo58) on CodePen.
3.よくある間違い
3-1.親要素にdisplay: flex;
をつけ忘れる
align-self
は Flexboxの文脈でしか効かないので、親要素にdisplay: flex;
を指定していないと効果がありません。
3-2.align-itemsと混同する
align-items
は親要素に指定し、子要素全てを並べ替えます。
一方でalign-self
は子要素のみに効果があります。
まとめ
まとめ
align-self
はFlexboxで並んでいる子要素を個別に交差軸方向への指定ができる。
.container{
display: flex; /* 親要素にdisplay: flex;を指定 */
}
セレクター{
align-self: 値;
}
align-self
を使えば、Flexboxの子要素ごとに縦位置を調整できるようになる。- 使う際は親要素に
display: flex;
をつける
コメント