【Flexbox】align-selfで特定の子要素だけ位置を変える

チャッピー
チャッピー

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;をつける

コメント