CSS Web制作

CSSで要素を上下左右反転させる方法【背景画像だけ反転も解説】

※ 当サイトではアフィリエイト広告を利用しています

画像を反転させるにはどうしたらいいの?

スライダーで矢印を画像にした場合、左と右の画像2つ用意する必要がありますが、片方だけ用意してあとは反転させれば使う画像は1つで済みます。

またテキストが書いてある背景画像を反転させる場合、テキストも反転してしまう可能性があるので、背景画像だけ反転させる方法も解説します。

他にも画像や要素を反転させたいケースはあると思うので、今回はサンプルを使って解説していきます。

 

完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
  • 30日間でWeb制作を学べる
  • 完全無料
  • 現役エンジニアへの質問無制限
  • オンラインの動画学習なので時間場所を問わず勉強可能
  • 最大4回の学習サポート面談
  • 受付は1日25名までの先着制
無料なのに専属のメンターが付き、現役エンジニアへの質問も無制限という破格のサービスです。
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇

\ 完全無料 /

ZeroPlus Gate公式サイト

先着1日25名まで!

CSSで要素を上下左右に反転させる方法

今回は4種類の反転方法を解説します。

  • 左右反転
  • 上下反転
  • 上下左右反転
  • 背景画像を反転(テキストはそのまま)

今回はtransform: scale();を中心に使っていきますが、transform: rotate();を使う方法もあります。

ただしtransform: rotate();は反転より回転で使いますし、transform: scale();の方がぱっと見て反転させてると分かるので、反転させるならtransform: scale();の方が個人的にはいいかと思います。

transform: rotate();については以下の記事を参照下さい。

あわせて読みたい
CSSで画像や文字など要素を回転させる方法【アニメーションも解説】
CSSで画像や文字など要素を回転させる方法【アニメーションも解説】

続きを見る

また今回使う画像はこちらになります。

HTMLはシンプルにimgタグだけにします。

<img src="画像パス" alt="" />

CSSは幅と高さだけ書きますが、解説では省略します。

img {
  height: auto;
  width: 200px;
}

そして今回のポイントとなるtransform: scale();は以下になります。

transform: scale(X方向の縮尺比率, Y方向の縮尺比率);

なので通常の状態だとtransform: scale(1, 1);になります。

 

要素を左右反転させる方法

左右反転させるCSSはこちらです。

img {
  transform: scale(-1, 1);
}

縮尺比率は変わらないのでサイズはそのままですが、X方向(横方向)をマイナスにすることで、左右反転させています。

See the Pen
上下左右反転:左右反転
by junpei (@junpei-sugiyama)
on CodePen.

 

transform: scaleX(-1);

変更するのはX方向だけなので、以下でも同じです。

img {
  transform: scaleX(-1);
}

 

transform: rotateY(180deg);

transform: rotateY(180deg);でも同じです。

img {
  transform: rotateY(180deg);
}

こっちはX方向ではなくY軸での回転なので、Yで合っています。

 

要素を上下反転させる方法

上下反転させるCSSはこちらです。

img {
  transform: scale(1, -1);
}

今度はY方向(縦方向)をマイナスにすることで、上下反転させています。

See the Pen
上下左右反転:上下反転
by junpei (@junpei-sugiyama)
on CodePen.

 

transform: scaleY(-1);

また変更するのはY方向だけなので、以下でも同じです。

img {
  transform: scaleY(-1);
}

 

transform: rotateX(180deg);

transform: rotateX(180deg);でも同じです。

img {
  transform: rotateX(180deg);
}

こっちはY方向ではなくX軸での回転なので、Xで合っています。

 

要素を上下左右反転させる方法

ここまでくれば予想できると思いますが、上下左右反転させるCSSはこちらです。

img {
  transform: scale(-1, -1);
}

今度はX方向・Y方向をマイナスにすることで、上下反転させています。

See the Pen
上下左右反転:上下左右反転
by junpei (@junpei-sugiyama)
on CodePen.

 

transform: scaleX(-1) scaleY(-1);

一応こういう書き方もできます。

img {
  transform: scaleX(-1) scaleY(-1);
}

 

transform: rotate(180deg);

transform: rotate(180deg);でも同じです。

img {
  transform: rotate(180deg);
}

これは時計の針のように半周回転するイメージです。

 

テキストが書いてある背景画像を反転させる方法

今度は画像の上にテキストが書いてある背景画像を反転させます。

こちらが反転前の状態です。

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

コードはこちらです。

<div class="bg">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</div>
.bg {
  align-items: center;
  background-image: url("画像パス");
  background-repeat: no-repeat;
  background-size: cover;
  display: flex;
  height: 66vw;
  position: relative;
  width: 100%;
}
.bg::before {
  background: rgba(0, 0, 0, .5); /* マスクの色(黒の50%) */
  bottom: 0;
  content: "";
  height: auto;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
}
p {
  color: #fff;
  font-size: clamp(16px, 5vw, 50px);
  line-height: 1.5;
  position: relative;
  width: 70%;
}

いろいろ書いてありますが、とりあえず背景画像のチワワが右側にいることだけ覚えておいて下さい。

そしてこちらのコードを追記します。

.bg {
  transform: scale(-1, 1);
}

すると背景画像だけでなく、テキストも反転してしまいます。

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

これは背景画像のある.bgの子要素も全て反転しているからで、これを修正するにはその子要素であるpタグだけさらに反転させれば一周して戻ります。

.bg {
  transform: scale(-1, 1);
}
p {
  transform: scale(-1, 1); /* 背景画像と同じコードを書いて相殺 */
}

See the Pen
上下左右反転:背景画像(背景画像だけ反転)
by junpei (@junpei-sugiyama)
on CodePen.

ただしテキストの位置は右になってしまっているので、今回の場合は以下のコードを追記して左寄せにします。

.bg {
  justify-content: flex-end;
}

See the Pen
Untitled
by junpei (@junpei-sugiyama)
on CodePen.

まとめ

今回は要素を上下左右反転させる方法と、背景画像だけ反転させる方法を解説してきました。

背景画像だけ反転させる場合は、その上に書いてあるテキストの位置なども注意しましょう。

以上になります。

 

Web制作おすすめ教材と案件獲得サービス
当ブログではWeb制作学習におすすめの教材を厳選してご紹介しています。
こちらの記事を参考に教材を購入して成果を出している人もたくさんいるので、自分に必要な教材を探してみて下さい。
また、学習面だけでなく営業面である案件獲得サービスもご紹介しています。
スキルが身についても仕事がなければ意味がないので、営業に不安がある人はこちらの記事をぜひ参考にしてみて下さい。
この記事を参考にスキルと営業力を身につけて稼げるようになりましょう!

-CSS, Web制作