【CSS】flex-directionを使用して要素を横方向、縦方向に並べ替える| プロサバメモ

WEBプログラミングやサーバ設定などのメモ場

【CSS】flex-directionを使用して要素を横方向、縦方向に並べ替える

2022.03.19

flex-directionを使って、div等の要素を横方向に並べ替えて表示したり、下から上の縦方向に並べ替えて表示するサンプルです。

目次

1. はじめに

以下のようなサンプルを用意しました。

flex-directionでA,B,Cのdiv要素を並び替えて表示してみます。

A
B
C

html

<div class="box">
    <div class="inner">A</div>
    <div class="inner">B</div>
    <div class="inner">C</div>
</div>

css

.box {
    width:100%;
    background: gray;
}
.inner {
    width:100px;
    height: 100px;
    background: rgba( 233,0,0, .5);
    border: solid 1px black;
}

2. 左から右の横並び(row)

flex-direction:rowを指定すると、div要素が左から右の横並びになる。

A
B
C

html

<div class="box">
    <div class="inner">A</div>
    <div class="inner">B</div>
    <div class="inner">C</div>
</div>

css

.box {
    width:100%;
    background: gray;
    display: flex;
    flex-direction: row;
}
.inner {
    width:100px;
    height: 100px;
    background: rgba( 233,0,0, .5);
    border: solid 1px black;
}

3. 右から左の横並び(row-reverse)

flex-direction:row-reverseを指定すると、div要素が右から左の横並びになる。

A
B
C

html

<div class="box">
    <div class="inner">A</div>
    <div class="inner">B</div>
    <div class="inner">C</div>
</div>

css

.box {
    width:100%;
    background: gray;
    display: flex;
    flex-direction: row-reverse;
}
.inner {
    width:100px;
    height: 100px;
    background: rgba( 233,0,0, .5);
    border: solid 1px black;
}

4. 上から下の縦並び(column)

この並びの場合、CSSを指定する必要はないが、flex-directionを使用する場合は以下のようにする。

flex-direction:columnを指定してもしなくても、div要素が上から下の横並びになる。

A
B
C

html

<div class="box">
    <div class="inner">A</div>
    <div class="inner">B</div>
    <div class="inner">C</div>
</div>

css

.box {
    width:100%;
    background: gray;
    display: flex;
    flex-direction: column;
}
.inner {
    width:100px;
    height: 100px;
    background: rgba( 233,0,0, .5);
    border: solid 1px black;
}

5. 下から上の縦並び(column-reverse)

flex-direction:column-reverseを指定すると、div要素が下から上の縦並びになる。

A
B
C

html

<div class="box">
    <div class="inner">A</div>
    <div class="inner">B</div>
    <div class="inner">C</div>
</div>

css

.box {
    width:100%;
    background: gray;
    display: flex;
    flex-direction: column-reverse;
}
.inner {
    width:100px;
    height: 100px;
    background: rgba( 233,0,0, .5);
    border: solid 1px black;
}

6. まとめ

並べ替え対象の外側の要素(この例ではboxクラス)のdisplayをflexもしくはinline-flexに設定する。

並べ替え対象の外側の要素(この例ではboxクラス)のflex-directionを設定する。

flex-directionの値は、右から左配置の場合は、rowを設定。

左から右配置の場合は、row-reverseを設定。

上から下配置の場合は、columnを設定。

下から上配置の場合は、column-reverseを設定する。

関連記事

TOP