【CSS】align-selfプロパティの使い方を徹底解説!!(入門者向け)

こんにちは。

フレックスレイアウトを勉強していると「justify-content」や「align-items」といったレイアウトのためのCSSプロパティを耳にしたことがあると思います。

でも、

アイテムの配置を個別で設定できないのかな…

このような疑問を抱いた経験はありませんか?

align-itemsだと全てのアイテムの配置を一括で設定できる便利なプロパティなのですが、デザインによっては個別で配置方法を変えたいというときもありますよね。

そんな時に便利なCSSプロパティが align-self プロパティです。

そこで今回は、align-self プロパティの

・基本的な使い方
・align-itemsとの違い

について説明します。

align-selfとは

align-self の読み方

align-self の読み方は「アライン セルフ」です。

align は日本語で「整列」、self は「自分自身」という意味になります。

align-selfはこれを組み合わせたような意味を持っており、付与したそのアイテムの配置方法を設定するためのプロパティとなります。

align-self はコンテナ内のアイテムの縦方向の揃え位置を個別に指定するプロパティ

align-self プロパティの用途を具体的にいうと、

コンテナ内のアイテムの縦方向の揃え位置を個別に指定するプロパティ

です。類似のプロパティとして、コンテナ内の全アイテムの縦方向の揃え位置を指定する align-items プロパティがありますが、align-self はアイテム単体の配置を設定します。

これに関しては後述の「align-itemsプロパティとの違い」で詳しく解説します。

align-self で利用できる値

align-self では以下の値を使うことができます。

説明
auto  親ボックスのalign-itemsプロパティの値に合わせる(初期値)
flex-start  上端揃え
flex-end  下端揃え
center  中央揃え
baseline  ベースライン揃え
stretch  フレックスアイテムの縦幅が伸ばされて揃えられる
注意
Internet Explorer では stretch は対応していません。

対応ブラウザ

対応ブラウザは以下の通りです。

PC用ブラウザ 対応状況
Chrome 完全対応
Edge 完全対応
Firefox  完全対応
Internet Explorer  完全対応
Opera  完全対応
Safari  完全対応
スマートフォン用ブラウザ 対応状況
Android webview  完全対応
Android版Chrome  完全対応
Android版Firefox  完全対応
Android 版 Opera  完全対応
iOS版Safari  完全対応
Samsung Internet  完全対応

align-selfの基本的な使い方

数ある align-self プロパティの値から、今回はフレックスレイアウトをする上で必ず抑えておくべき align-self の値を解説していきます。

結論からいうと、たった3つの値を覚えておくだけで align-self を使用したフレックスレイアウトの基礎を抑えることができます。

これから紹介する3つの値は最低限覚えておきましょう!

上端に配置

まずはフレックスコンテナの上端に配置する方法です。

特定のアイテムだけの揃え位置を上端に配置する場合は、align-self に flex-start を指定します。

今回は黄色のアイテムのみに flex-start を指定し、上端に配置するように指定しました。

あれ?変わってなくない?と思うかもしれません。正直この状態では設定していないのと見た目は変わりません。

ですが明示的に黄色のアイテムは上端に配置する設定になっています。

真ん中に配置

続いて特定のアイテムを縦方向で真ん中に配置するように設定してみましょう。

真ん中に配置するには、align-self に center を指定します。

今回は違いが顕著に表れていますね!

このように、 center を指定すると指定したアイテム(今回は黄色のアイテム)を真ん中に配置することができます。

下端に配置

抑えておくべき3つ目の値は下端に配置するための値です。

特定のアイテムを下端に配置するには align-self に flex-end を指定します。

これで黄色のアイテムだけ下端に配置されましたね!

このように、flex-end を指定すると特定のアイテムを下端に配置することができます。

align-itemsプロパティとの違い

最後に、類似プロパティの align-items プロパティとの挙動の違いを解説します。

簡単にこれらの違いをまとめると、

  • align-items:コンテナ内の全てのアイテムの揃え位置を指定。
  • align-self:コンテナ内の特定のアイテムの揃え位置を指定。

になります。

今回も先ほどのサンプルコードを使ってその違いを見ていきましょう。

今回はまず全アイテムを align-items で真ん中に配置しました。続いて黄色のアイテムのみを align-self で下端に配置しました。

このように、align-items と align-self は配置方法を指定するアイテムが全部か単体かの違いがあります。

まとめ

いかがでしょうか?

今回は フレックスレイアウトで最低限抑えておくべき align-self プロパティの値から類似の align-items プロパティとの違いを紹介していきました。

フレックスレイアウトは現在のフロントエンド界隈では主流のマークアップ技術なので、これらのプロパティはぜひ覚えておきましょう!

参考文献:http://www.htmq.com/css/align-self.shtml

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?