[Vuetify3]Vuetifyに存在するflex系統のcssクラス群[Flex helpers]

[Vuetify3]Vuetifyに存在するflex系統のcssクラス群[Flex helpers]
2022年11月1日に満を持してリリースされたVuetify 3 (コードネーム:Titan)
この記事を書いている現在(2022年12月12日)、早くも version 3.0.4 に更新されている様です。

当サイトでは、普段は Vuetify 3 のUIコンポーネントについて書いている記事が多めですが
今回は前回、前々回に続いて Vuetify 3 があらかじめ備えているcssクラス群について書いていきたいと思います。

前回は余白を調整するためのcssクラス群に関する内容をご紹介しましたが、
今回は「flexboxとして並べた要素を調整」する場合に使える
「flex系統のcssクラス群」について書いていきます。

なお、この記事を書いた際に Vue3, Vuetify3 を動作させている環境は次のとおりです。
参考までにご確認ください。

・Mac OS Montrey (12.3.1)
・Node.js v16.18.1
↑この Node.js のバージョンは、 Corepack が同梱されているバージョン( v16.10以降 )を使用することをお勧めします。

Vuetify 3 に定義されている、flex系統のclass

それでは早速、Vuetify 3 に定義されている、flex系統のcssクラス群について書いていきます。

Vuetifyでは、親要素に
d-flex
というclassを付与する事で、その子要素をflexboxとして並べる事ができます。

flexboxにはご存知の通り、その要素内での位置を決めるための
各種プロパティが存在します。

今回の記事では、 d-flex と組み合わせて使用する、
Vuetify 3 に定義されている「flexbox用のcssクラス群」について
使用頻度の高そうなものを挙げて書いていきたいと思います。

横方向の位置をどうするかを決める

display: flex 状態になった要素内での、
子要素の横方向の並べ方を指定するには jusitfy-content を使用しますよね。

Vuetifyでは、次の指定でこれを付与する事ができます。

<div class="d-flex justify-center">
  <v-card title="flex状態のv-card"></v-card>
  <v-card title="flex状態のv-card"></v-card>
  <v-card title="flex状態のv-card"></v-card>
</div>

↑flex状態となった3枚の v-card のflexbox要素内での位置を、
Vuetify 3 に定義されているcssクラスで指定しています。
1行目の justify-center がそれに該当するclassです。
上記の例の様に、d-flex を付与した要素と同じ要素に指定します。

Vuetify 3 に定義されている
justify-content系のclassは、上記を含め、次のものがあります。

.justify-start … 左寄せで並ぶ
.justify-end … 右寄せで並ぶ
.justify-center … 中央寄せで並ぶ
.justify-space-between … 各要素を均等に配置、左右にガター(親要素との余白)なし
.justify-space-around … 各要素を均等に配置、左右にガター(親要素との余白)あり。ガターは均等配置された余白の半分の値になる

モバイルサイズを超えたら均等配置、PCサイズを超えたら左寄せ、といった指定

前回や、前々回の記事でも出てきた部分ですが、
こちらのjustify系統のclassでも、もちろん「Vuetify 3 に定義されたブレークポイント毎での変化」をさせる指定が可能です。
具体的には、次の様に指定します。

<div class="d-flex justify-center justify-sm-space-between justify-lg-start">
  <v-card title="flex状態のv-card"></v-card>
  <v-card title="flex状態のv-card"></v-card>
  <v-card title="flex状態のv-card"></v-card>
</div>

↑この例では、基本が中央揃え、
600pxを超えたらspace-between,
1280pxを超えたら左揃え、
という指定になります。

縦方向の位置をどうするかを決める

続いて、justify-content と同じくflexboxレイアウトでよく使う
「flexbox内での縦方向の位置指定」についてです。

これは、align-items というcssプロパティを親要素に指定する事で定義できますが、

Vuetify 3 に定義されている align-items を使用するclassは次のとおりです。
.align-start … 上揃えで並ぶ
.align-end … 下揃えで並ぶ
.align-center … 縦方向の中央揃えで並ぶ
.align-baseline … 文字のベースラインで並ぶ
.align-stretch … flexbox内の縦方向に、margin等を考慮のうえ拡張されて並ぶ

↑基本の形は、justify-content の場合と同じですね。
もちろん、justify-content と同様の記法で
「モバイルサイズではベースラインで」、「PCサイズでは縦方向の中央揃えで」といった指定が可能です。

<div class="d-flex align-start align-sm-baseline align-lg-center">
(...中略...)

↑この様に指定します。
基本は align-items: start,
600pxを超えたら align-items: baseline,
1280pxを超えたら align-items: center
という指定です。

その他のflexbox調整系のVuetifyのcssクラス群

ここまでのセクションでは、flexboxレイアウトで最も使う頻度が高いと思われる
横方向の位置、縦方向の位置を定義するcssクラスについて書いてきました。

この他にも、Vuetifyが持っているflexbox調整系cssクラス群はたくさんあります。

要素の順番を個別に指定できる order(order-{数値} の形で0〜12番まで指定可能),
flexbox内で折り返しを許可するかどうかの flex-wrap,
flexbox内での自動拡大、自動縮小を認めるかどうかの flex-grow, flex-shrink

などなど、flexboxレイアウトで想定される指定は
ほぼ全て網羅されて Vuetify 内に定義されています。

すべての詳細は、Vuetify公式ページに詳しく解説されていますので、
一読すると理解が深まるかと思います。
CSS Flex helpers — Vuetify

この記事のまとめ

当サイトでは、普段は Vuetify 3 のUIコンポーネントを中心に記事を書く事が多い印象ですが
前回の記事
前々回の記事
に引き続いて今回も
Vuetify 3 にあらかじめ定義されているcssクラス群」についての内容を書いてみました。

前回も書いた事ですが、Vuetify には、
今回ご紹介したFlexbox調整系統のcssクラス群の様に、
あらかじめ定義されているcssクラス群が多数あるので
それ単体で、Bootstrapのように
文字通り「UIフレームワーク」として運用する事が可能となっています。

今後もまた、Vuetify 3 のUIコンポーネントの記事と並行して
この他にも数多くあるcssクラス群についても、記事を書いていければと考えています。

この記事が皆さんのより良いWeb制作体験につながれば、嬉しく思います。

※この記事は内容の品質向上を目的に、随時更新を行う場合があります。

この記事をシェアする: