浪人のサムライ

TOP

flex-direction:row-reverseで画像と文字を交互に

画像とテキストを交互にする方法を解説します。5個くらいなら、HTMLで交互に書けばいいでしょう。しかし、100個、200個となると、どこかで間違う可能性があります。

そのとき、flex-direction: row-reverseを使えば簡単です。

完成系は以下になります。

完成形

ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。

ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。

HTML



<div class="row">
<figure><img src="images/samurai.png"></figure>
<p>ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。</p>
</div>

<div class="row">
<figure><img src="images/samurai.png"></figure>
<p>ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。ここに文章が入ります。</p>
</div>


.rowで画像と文字を囲んでいます。何ら問題ない、HTMLですね。簡単です。

SCSS


.row{
display: flex;
gap: 1rem;
margin-bottom: 2rem;
&:nth-child(even) {
flex-direction: row-reverse;
  }
}

.rowに、disp;ay:flexで横並びします。gapで間隔を開けています。あとは、&:nth-child(even)と、flex-direction: row-reverse;を書いています。

ポイントは、rowの中に書くこと。

CSSも載せておきます。

CSS


.row {
  display: flex;
  gap: 1rem;
  margin-bottom: 2rem;
}
.row:nth-child(even) {
  flex-direction: row-reverse;
}

CSSの方が単純でわかりやすいか。ただ、CSSはコンパイルの必要がありません。SCSSはCSSにコンパイルする必要があります。vscodeであれば、Live Sass Compilerでコンパイルできます。

さいごに

わりと使うシーンがあると思います。お試しあれ。他にもホームページ制作系のページがあるので、気になる方はチェックして下さい。