Flexboxの基本と主軸の方向を決めるflex-direction

こばゆた
こばゆた

今回から数回に分けてFlexboxについて学習していきます

きなこ
きなこ

Flexboxってなぁに?何ができるの?

チャッピー<br>
チャッピー

また新しい用語が…💦

こばゆた
こばゆた

例を見てもらう方がわかりやすいんだけど、Flexboxを使うと下の図のように良く見るレイアウトを作ることが簡単に作る事ができます

こばゆた
こばゆた

ちなみにFlexboxを使わないとこのような感じになります

チャッピー
チャッピー

全然違う!

スッキリしていないし、見づらい

こばゆた
こばゆた

Flexboxはこのように指定するだけで並びを変えたりするのが簡単になり柔軟なレイアウトができるようになります

今日のテーマ

  • Flexboxを使った横並びのやり方がわかる
  • flex-directionの考え方がわかる
スポンサーリンク

1.Flexboxの基本

<div>aaa</div>
<div>bbb</div>
<div>ccc</div>
<div>ddd</div>

このようにdivタグやpタグなどのブロック要素は作られると縦に積まれます。

aaa
bbb
ccc
ddd

これらに対しFlexboxを使う事で横並びに簡単にできます。

やり方は親要素で囲み、その親要素の方にdisplay: flex;を指定します。

<div class="container"> <!--"containerクラスで囲む"-->
  <div>aaa</div>
  <div>bbb</div>
  <div>ccc</div>
  <div>ddd</div>
</div>
.container{
  display: flex; /*横並びにする*/
}
表示例
aaa
bbb
ccc
ddd
きなこ
きなこ

簡単に横並びになった!

ちなみにclass名はなんでも良いのですが親要素を”flex-container”、子要素を”flex-item”と呼ぶので”container”にする事が多いです。

同様に縦に並んでいるリストもdisplay: flex; を親要素の方に使う事で横並びにする事ができます。

  • リスト1
  • リスト2
  • リスト3
  • リスト4
<ul class="flex-list">
  <li>リスト1</li>
  <li>リスト2</li>
  <li>リスト3</li>
  <li>リスト4</li>
</ul>
.flex-list{
  display: flex;
  list-style: none; /*リストの点を消す*/
}
表示例
  • リスト1
  • リスト2
  • リスト3
  • リスト4
こばゆた
こばゆた

こちらも横並びになりました

きなこ
きなこ

こっちは囲わなくても良いの?

こばゆた
こばゆた

li要素は初めから親要素であるul要素で囲まれているためわざわざ作って囲む必要はないよ

でも複数リストがある場合だとこんがらがるからクラス名は付けた方がいいかな

スポンサーリンク

2.子要素の並び”flex-directionプロパティ”

flex-directionプロパティは値を指定することで”flex item(子要素)”がどちらの方向(主軸の向き)に並ぶかを指定する事ができます。

セレクター{
  display: flex;
  flex-direction: 値;
}

ちなみに主軸と交わる軸を交差軸といいます。

こちらを念頭に置き値を変えるとどうなるかを見ていきます。

2-1.row

初期値は”row“で主軸が横並びになります。

セレクター{
  display: flex;
  flex-direction: row; /*display: flex;を指定した時点で初期値は"row"なので、あえて指定しなくても良い*/
}
表示例

See the Pen flex-direction: row by kbyt (@kbo58) on CodePen.

初期値なので目に見えた変化はありません。

2-2.row-reverse

主軸がになり、かつ反転します(右から左へ並ぶ)。

.container{
  display: flex;
  flex-direction: row-reverse;
}
表示例

See the Pen flex-direction: row-reverse by kbyt (@kbo58) on CodePen.

2-3.column

“column”は主軸がになります。

.container{
  display: flex;
  flex-direction: column;
}
表示例

See the Pen flex-direction: column; by kbyt (@kbo58) on CodePen.

2-4.column-reverse

主軸がになり、かつ反転します(下から上へ並ぶ)。

.container{
  display: flex;
  flex-direction: column-reverse;
}
表示例

縦に並び、順番が反対になってますね。

3.まとめ

まとめ

親要素で囲み、display: flex;を使えば横並びにできる。

<div class="container">
  <div>aaa</div>
  <div>bbb</div>
  <div>ccc</div>
  <div>ddd</div>
</div>
セレクター{
  display: flex;
}

flex-directionプロパティは子要素の並び(主軸の向き)を指定する事ができる。

セレクター{
  display: flex;
  flex-direction: 値;
}

See the Pen
Untitled
by kbyt (@kbo58)
on CodePen.

こばゆた
こばゆた

どちらが主軸で交差軸かという考え方は常に意識しましょう

次回以降この考えが大事になってきます

きなこ
きなこ

はーい

コメント