時給単価UP【3大特典付き】
コーディングテクニック集100選⋙

【CSS】Flexboxで表示順番を変える方法3選【左右上下逆順あり】

記事内に広告を含みます

パソ君
パソ君

・Flexboxで表示順番を変える方法ある?

こんな疑問にお答えします。

デザインによってはPCとスマホ表示で、表示順番が違う場合がありますよね。

HTMLの組み立て状、反映が厳しい場合が。。

でもFlexboxを使ってる場合、表示順番を変えることができちゃいます。

これによりHTMLを書き換える必要がなくなることに。

ジト
ジト

簡単にできるよ!

ということで、この記事では「Flexboxで表示順番を変える3つの方法」について解説していきます!

この記事でわかること

・Flexboxで表示順番を変える方法【左右逆順】
・Flexboxで表示順番を変える方法【上下逆順】
・Flexboxで表示順番を変える方法【順番変更】

方法①:Flexboxで表示順番を変える【左右逆順】

1つ目が左右の表示順を変える方法です。

サンプルがこちらになります。

See the Pen ➀flex表示順 by jito-coder (@jito-coder) on CodePen.

これは「文章」⇒「画像」というHTMLの組み立てで、display: flex;を使っています。

1列目、2列目同様の組み立て方法で反映しています。
でも2列目は、左右の順番が逆になっていますよね。

そんな実装のコードがこちら↓

<div class="flex">
    <div class="flex-content">
        <h2 class="flex-content__title">タイトル</h2>
        <p class="flex-content__text">
            ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。
        </p>
    </div>
    <div class="flex__img">
        <img src="https://jito-site.com/wp-content/uploads/2022/12/test01.jpg" alt="" width="1280" height="843">
    </div>
</div>
<div class="flex flex--reverse">
    <div class="flex-content">
        <h2 class="flex-content__title">タイトル</h2>
        <p class="flex-content__text">
            ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。
        </p>
    </div>
    <div class="flex__img">
        <img src="https://jito-site.com/wp-content/uploads/2022/12/test01.jpg" alt="" width="1280" height="843">
    </div>
</div>
.flex {
    display: flex;
    justify-content: space-between;
    margin-top: 50px;
}

.flex--reverse {
    flex-direction: row-reverse;
}

やり方の結論としては「flex-direction:row-reverse;」を使うこと。

flex-direction:row-reverse;を使う

// 左右逆順にしたい親要素に対して
.flex--reverse {
    flex-direction: row-reverse;
}

「flex-direction:row-reverse;」を使うことで、横並び要素の並び順番が逆になります。

つまり左⇒右に向かって寄せるのではなく、右⇒左に向かって寄せるように。

注意点としては、位置自体が右に寄ってしまうこと。

左側に寄せつつ逆並びにしたいのであれば、横幅調整をする必要があります。

方法②:Flexboxで表示順番を変える【上下逆順】

2つ目が上下の表示順を逆順に変える方法です。

サンプルが画像がこちらになります。

Flexboxを使い、スマホ時にflexboxを解除すると、PC⇒スマホでこの画像のようなレスポンシブになってしまいますよね。
(先ほどのflex-direction: row-reverse;は使っておりません)

ただこの画像だと、スマホ時の縦並び順が先ほどと異なっていますよね。

そんな実装のコードがこちら↓

See the Pen ➀flex表示順 by jito-coder (@jito-coder) on CodePen.

<div class="flex">
    <div class="flex__img">
        <img src="https://jito-site.com/wp-content/uploads/2022/12/test01.jpg" alt="" width="" height="">
    </div>
    <p class="flex__text">
        ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。
    </p>
    <h2 class="flex__title">タイトル</h2>
</div>
.flex {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
@media screen and (max-width: 768px) {
  .flex {
    flex-direction: column-reverse;
  }
}

やり方の結論としては「flex-direction:column-reverse;」を使うこと。

flex-direction:column-reverse;を使う

// 上下逆順にしたい親要素に対して
.flex {
    flex-direction: column-reverse;
}

「flex-direction:column-reverse;」を使うことで、縦並び要素の並び順番が逆になります。

つまり上⇒下に向かって寄せるのではなく、下⇒上に向かって寄せるように。

注意点としては、位置自体が下に寄ってしまうこと。

上側に寄せつつ逆並びにしたいのであれば、高さ調整をする必要があります。

➂:Flexboxで表示順番を変える【順番変更】

3つ目の方法が順番自体を変える方法です。

サンプルがこちらになります。

通常のflexboxの組み立てでは、考えられないレスポンシブ反映となっていますよね。

そんな実装コードがこちら↓

See the Pen ➁flex表示順 by jito-coder (@jito-coder) on CodePen.

<ul class="flex">
    <li class="flex-item">1番目</li>
    <li class="flex-item">2番目</li>
    <li class="flex-item">3番目</li>
    <li class="flex-item">4番目</li>
    <li class="flex-item">5番目</li>
</ul>
@media screen and (max-width: 768px) {
  .flex {
    flex-direction: column;
  }
  .flex-item:nth-child(1) {
    order: 5;
  }
  .flex-item:nth-child(2) {
    order: 1;
  }
  .flex-item:nth-child(3) {
    order: 4;
  }
  .flex-item:nth-child(4) {
    order: 2;
  }
  .flex-item:nth-child(5) {
    order: 3;
  }
}

やり方の結論としては「order」を使うこと。

orderを使う

「order」を使うことで、要素の表示順番を変えることができます。

// 表示順番を変えたい子要素に対して
.flex-item {
    order: 数;
}

使い方としては「order: 数」のように指定。
数が小さいほうから順番に表示されるようになります。

マイナスの数を指定することも可能。

ジト
ジト

ちなみに初期値は0だよ!

このorderプロパティを使用すれば、PC時とスマホ時にflexboxでの表示順番が異なることがあってもHTMLを組み替えずに実装対応することができます。

【CSS】Flexboxで表示順番を変える方法3選【左右上下逆順あり】:まとめ

  • 左右逆順⇒flex-direction:row-reverse;を使う
  • 上下逆順⇒flex-direction:column-reverse;を使う
  • 順番変更⇒orderを使う
ジト
ジト

flexboxでの表示順番を変えたいときは、この方法を使ってみよう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA