ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > HTML/CSS > 【CSS】align-selfの使い方を解説!align-itemsとの違いは?

【CSS】align-selfの使い方を解説!align-itemsとの違いは?

HTML/CSS

2022/05/27

2023/05/08

flexbox align-selfプロパティ解説記事サムネイル

align-self はflexアイテムの配置を個別に指定するプロパティです。align-self を使用すれば、flexアイテムの配置を全体的に統一しながら特定のflexアイテムの配置のみを変更できます。

この記事ではalign-selfの使い方を解説します。

この記事で身につく内容
  • align-self とは
  • align-self の使い方
  • align-self と align-items の違い

ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

 

align-selfとは

align-self はflexアイテムの配置を個別に指定するプロパティです。上揃え・下揃え・中央揃えや、ベースライン(テキストの下部)で揃える指定、親要素の高さに則って伸縮する指定などができます。

align-self の配置は、flex-direction の値によって方向が変わります。flex-direction: row; のときは縦方向、flex-direction: column; のときは横方向での配置となります。

flex-direction の値によるflexアイテムが並ぶ向きのことを主軸、そして主軸に交わる方向のことをクロス軸(交差軸)といいます。主軸とクロス軸の概念はflexboxを使いこなすうえで重要です。

主軸・クロス軸については、flex-direction を学習するとわかりやすくなります。こちらの記事で flex-direction の使い方、および主軸・クロス軸について詳しく解説しています。ぜひ併せてお読みください。

ZeroPlusgate50教材の動画

 

align-selfの使い方

align-self の基本形は以下のとおりです。

.flexbox {
  display: flex;
}

.flex-item {
  align-items: 値;
}

align-self を使用するときは、親要素に display: flex; を、子要素に align-self をそれぞれ指定します。

align-self で使用できる値は以下のとおりです。

align-self で使用できる値
  • auto(初期値): 親要素の align-items の値に従う
  • flex-start : 親要素の左端に配置
  • flex-end : 親要素の右端に配置
  • center : 親要素の中央に配置
  • baseline : flexアイテムのベースライン(テキストの下端)に配置
  • stretch : 親要素の横幅に合わせてflexアイテムを伸縮

それぞれの値の使い方は次の項目で詳しく解説します。

以下は基準となるHTMLとCSSの記述です。

 

auto

align-self: auto; は、flexアイテムの配置が親要素の align-items の値を継承する指定です。

以下が記述例と出力結果です。

<div class="flexbox">
  <div class="flex-item item01">①</div>
  <div class="flex-item item02">②</div>
  <div class="flex-item item03">③</div>
  <div class="flex-item item04">④</div>
  <div class="flex-item item05">⑤</div>
</div>
.flexbox {
  display: flex;
  align-items: center;
  height: 100px;
}

.flex-item {
  color: #fff;
  width: 100px;
  text-align: center;
}

.item01 {
  background-color: red;
}

.item02 {
  background-color: blue;
  align-self: auto;
}

.item03 {
  background-color: green;
}

.item04 {
  background-color: black;
}

.item05 {
  background-color: purple;
}

align-self: auto;の出力結果

 

flex-start

align-self: flex-startは、flexアイテムを親要素の上部に配置する指定です。

以下が出力結果と記述例です。

<div class="flexbox">
  <div class="flex-item item01">①</div>
  <div class="flex-item item02">②</div>
  <div class="flex-item item03">③</div>
  <div class="flex-item item04">④</div>
  <div class="flex-item item05">⑤</div>
</div>
.flexbox {
  display: flex;
  align-items: center;
  height: 100px;
}

.flex-item {
  color: #fff;
  width: 100px;
  text-align: center;
}

.item01 {
  background-color: red;
}

.item02 {
  background-color: blue;
  align-self: flex-start;
}

.item03 {
  background-color: green;
}

.item04 {
  background-color: black;
}

.item05 {
  background-color: purple;
}

align-self: flex-start;の出力結果

 

flex-end

align-self: flex-end;は、flexアイテムを親要素の下部に配置する指定です。

以下が記述例と出力結果です。

<div class="flexbox">
  <div class="flex-item item01">①</div>
  <div class="flex-item item02">②</div>
 <div class="flex-item item03">③</div>
  <div class="flex-item item04">④</div>
  <div class="flex-item item05">⑤</div>
</div>
.flexbox {
  display: flex;
  align-items: center;
  height: 100px;
}

.flex-item {
  color: #fff;
  width: 100px;
  text-align: end;
}

.item01 {
  background-color: red;
}

.item02 {
  background-color: blue;
  align-self: flex-start;
}

.item03 {
  background-color: green;
}

.item04 {
  background-color: black;
}

.item05 {
  background-color: purple;
}

align-self: flex-end;の出力結果

 

center

align-self: center;は、flexアイテムを親要素の中央に配置する指定です。解説のためここでは親要素のalign-itemsflex-startに指定します。

<div class="flexbox">
  <div class="flex-item item01">①</div>
  <div class="flex-item item02">②</div>
  <div class="flex-item item03">③</div>
  <div class="flex-item item04">④</div>
  <div class="flex-item item05">⑤</div>
</div>
.flexbox {
  display: flex;
  align-items: flex-start;
  height: 100px;
}

.flex-item {
  color: #fff;
  width: 100px;
  text-align: center;
}

.item01 {
  background-color: red;
}

.item02 {
  background-color: blue;
  align-self: center;
}

.item03 {
  background-color: green;
}

.item04 {
  background-color: black;
}

.item05 {
  background-color: purple;
}

align-self: center;の出力結果

 

baseline

align-self: baseline;は、flexアイテムをベースライン(テキストの下部)を基準に配置する指定です。

以下が出力結果と記述例です。

<div class="flexbox">
  <div class="flex-item item01">①</div>
  <div class="flex-item item02">②</div>
  <div class="flex-item item03">③</div>
  <div class="flex-item item04">④</div>
  <div class="flex-item item05">⑤</div>
</div>
.flexbox {
  display: flex;
  align-items: center;
  height: 100px;
}

.flex-item {
  color: #fff;
  width: 100px;
  text-align: end;
}

.item01 {
  background-color: red;
}

.item02 {
  background-color: blue;
  align-self: baseline;
}

.item03 {
  background-color: green;
}

.item04 {
  background-color: black;
}

.item05 {
  background-color: purple;
}

align-self: baseline;の出力結果

 

stretch

align-self: stretchは、flexアイテムを親要素の高さに合わせて伸縮させる指定です。

以下が出力結果と記述例です。

<div class="flexbox">
  <div class="flex-item item01">①</div>
  <div class="flex-item item02">②</div>
  <div class="flex-item item03">③</div>
  <div class="flex-item item04">④</div>
  <div class="flex-item item05">⑤</div>
</div>
.flexbox {
  display: flex;
  align-items: center;
  height: 100px;
}

.flex-item {
  color: #fff;
  width: 100px;
  text-align: end;
}

.item01 {
  background-color: red;
}

.item02 {
  background-color: blue;
  align-self: stretch;
}

.item03 {
  background-color: green;
}

.item04 {
  background-color: black;
}

.item05 {
  background-color: purple;
}

align-self: stretch;の出力結果

ZeroPlusgate50教材の動画

 

align-selfとalign-itemsの違い

flexアイテムの縦の配置を決めるプロパティには、align-self と align-items の2つがあります。この2つのプロパティはよく似ていますが、対象となる要素が違うため混同しないよう注意しましょう。

  • align-self : flexアイテム個々の縦の配置
  • align-items : flexアイテム全体の縦の配置

align-self は親要素の align-items よりも優先されます。そのため align-self は特定のflexアイテムだけを全体と異なる配置にしたいときに有用です。

align-items の使い方についてはこちらの記事で詳しく解説しております。align-items の性質を理解すれば align-self の理解にも役立ちますので、参考にお読みください。

 

まとめ

align-self はflexアイテムの縦の配置を個別に指定するプロパティです。align-self と align-items はよく似ていますが、違いを理解することで思い通りのコーディングが可能です。

flexアイテムを自由自在に操れるよう、学習していきましょう!

align-selfまとめ

  • flexアイテムの縦の配置を個別に指定するプロパティ
  • align-items の値と異なる配置が可能

ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

\ 学んだことをSNSでシェアしよう /

おすすめのタグ

この記事の執筆者

ZeroPlus Media変種部

ZeroPlus Media編集部

ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

質問について

ZeroPlus Media読者限定で質問対応をおこなっています。以下の2つの方法で質問を受け付けています。

選べる2つの質問方法

1

Google Foam(テキスト)で質問

mail

フォーム送信

メールで解答

formで質問
2

Google meet(オンラインmtg)で質問

meet

日時選択

メールを受け取る

メールからmtgに参加

meetで質問
ZeroPlus Gateについて

あなたの目的に合わせた2つのサービス

あなたの目的に合わせたZeroPlusの2つのサービス
基礎からフリーランスレベルまで本質的な学びを提供しています

完全無料!30日間で学びきれる
プログラミンスクールZeroPlus Gate

  • お金をかけずに、学習を進めたい
  • Webサイトを作れるようになりたい
  • メンターや講師に質問しながら学習したい

詳しくはこちらから

フリーランス特化型
プログラミングスクール ZeroPlus

  • プログラミング学習で悩んでいる
  • 仲間と一緒に学習したい
  • フリーランスとしての総合的な力を養いたい

詳しくはこちらから