CSSで文字や画像をくるっと回転!transform:rotate()の使い方を解説

公開日: 2022.01.31
更新日: 2024.01.03
CSSで文字や画像をくるっと回転

最近のWebサイトでは、マウスホバーでボタンが動いたり、画像がくるくる回転したりと、様々なアニメーションが施されています。

そんな面白いサイトのように、動きのあるWebサイトを制作したいと思っている方も多いでしょう。

そこで今回は、CSSのtransform:rotate()を使用して、文字や画像をくるっと回転させる方法を解説します。

この記事を読んでわかる内容は、以下の通りです。

  • 要素を回転させるtransform:rotate()プロパティの基礎知識
  • transform:rotate()プロパティの使い方
  • 回転アニメーションをつける3つの方法

「くるくる回転するボタンを作りたい」

「テキストを斜めにしたり、回転させて表示させたい」

などと思っている方に、参考になる内容となっていますよ。

要素を回転させるには「transform:rotate()」プロパティを使用する

画像やテキストなどの要素を回転させるアニメーションは、CSSだけで実装することが可能。

要素の回転には、「transform:rotate()」プロパティを使用します。

transformは、要素の変形を指定できるプロパティで、値にrotate()を指定すると、回転させることができます。

他にも、以下のように要素の位置を変更したり、拡大したり、色々な形に変形できるアニメーションに便利なプロパティです。

指定できる値意味
rotate要素の回転
scale要素の拡大や縮小
translate要素の移動
skew要素の歪み

transform:rotate()プロパティの「()」には、回転角度の数値と単位の「deg」が入ります。

degは、英語の「Degree(角度)」を省略した単位です。

以下は、基本的な構文です。

セレクタ {
    transform:rotate(数値deg);
}

transform:rotate()の使い方

では、実際にtransform:rotate()プロパティを使ってみましょう!

transform:rotate()では、回転角度と回転する軸を決めることができます。

どこを軸に回転させるかにより、2Dでの回転や、上下軸での回転など、以下のような回転が実装できるようになります。

  • rotate(回転角度):2D回転
  • rotateX(回転角度):X軸(上下)回転
  • rotateY(回転角度):Y軸(左右)回転
  • rotateZ(回転角度):Z(中心)軸回転
  • rotate3d(回転角度):3D(X・Y・Z軸を一括で)回転

では、それぞれの方法について詳しく解説していきます。

rotate(回転角度):2D回転させる方法

rotate(回転角度)は、表面上の要素を傾けて表示させる2D回転の指定方法です。

具体的には、以下のように指定します。

<!-- HTMLコード -->

<div class="rotate">
  <p>rotate</p>
</div>
/* CSSコード */
.rotate {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
  transform: rotate(45deg);
}

▼ブラウザ表示▼

2D回転させた画像

rotateX(回転角度):X軸回転させる方法

X軸とは、上下の真ん中、つまり水平の軸のことを意味します。

以下のようにrotateX()を指定することで、X軸回転(上下反転)させることができます。

<!-- HTMLコード -->
<div class="rotate">
  <p>rotate</p>
</div>
/* CSSコード */
.rotate {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
  transform: rotateX(180deg);
}

▼ブラウザ表示▼

X軸回転させた画像

rotateY(回転角度):Y軸回転させる方法

Y軸とは、左右の真ん中、つまり垂直の軸のことを意味します。

以下のようにrotateY()を指定することで、Y軸回転(左右反転)させることができます。

<!-- HTMLコード -->
<div class="rotate">
  <p>rotate</p>
</div>
/* CSSコード */
.rotate {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
  transform: rotateY(180deg); 
}

▼ブラウザ表示▼

Y軸回転させた画像

rotateZ(回転角度):Z軸回転させる方法

Z軸とは、要素の中心点を軸にすることを意味します。

以下のようにrotateZ()を指定することで、Z軸回転(rotateと同様)させることができます。

<!-- HTMLコード -->
<div class="rotate">
  <p>rotate</p>
</div>
/* CSSコード */
.rotate {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
  transform: rotateZ(-45deg);
}

▼ブラウザ表示▼

Z軸回転させた画像

rotate3d(回転角度):3D回転させる方法

rotate3d()は、その名の通り3D回転させることができる指定方法です。

X、Y、Z軸を一括して指定することで、立体的な回転を実装できるという仕組みになっています。

具体的には、以下のように記述します。

<!-- HTMLコード -->
<div class="rotate">
  <p>rotate</p>
</div>
/* CSSコード */
.rotate {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
  transform: rotate3d(1,1,1,60deg);
}

▼ブラウザ表示▼

3D回転させた画像

回転にアニメーションをつけてみよう!

transform:rotate()で回転させた要素に、アニメーションをつけることも可能です。

回転アニメーションをつける方法は、主に以下の2つ。

  1. hoverを使う方法
  2. @keyframesを使う方法

では、それぞれの方法を詳しく解説していきます。

1.hoverを使う方法

hoverは、マウスホバー時の状態を指定できる疑似クラスです。

<!-- HTMLコード -->
<div class="rotate">
  <p>rotate</p>
</div>
/* CSSコード */
.rotate {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
}

.rotate:hover {
  transform: rotate(360deg);
  transition: all 1s;
}

2.@keyframesを使う方法

@keyframesとは、アニメーションの動きを指定することができる、特殊な@規則です。

拡大しながらの回転や、フェードインなど、様々な表現を実装することが可能になります。

また、@keyframesで設定したアニメーションは、ループ再生されるという特徴もあります。

具体的な使い方は、2DやX・Y軸回転など、4つのサンプルで紹介していきます。

1.2D回転のアニメーション

<!-- HTMLコード -->
<div class="rotate">
  <p>rotate</p>
</div>
/* CSSコード */
.rotate {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
  animation: rotate 4s linear infinite;
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

2.X・Y軸回転のアニメーション

<!-- HTMLコード -->
<div class="rotateX">
  <p>rotate</p>
</div>

<div class="rotateY">
  <p>rotate</p>
</div>
/* CSSコード */
.rotateX {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
  animation: rotateX 4s linear infinite;
  margin: 10px;
}

.rotateY {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
  animation: rotateY 4s linear infinite;
}

@keyframes rotateX {
  0% {
    transform: rotateX(0deg);
  }
  100% {
    transform: rotateX(360deg);
  }
}

@keyframes rotateY {
  0% {
    transform: rotateY(0deg);
  }
  100% {
    transform: rotateY(360deg);
  }
}

3.Z軸回転のアニメーション

<!-- HTMLコード -->
<div class="rotate">
  <p>rotate</p>
</div>
/* CSSコード */
.rotate {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
  animation: rotate 4s linear infinite;
  margin: 10px;
}

@keyframes rotate {
  0% {
    transform: rotateZ(0deg);
  }
  100% {
    transform: rotateZ(360deg);
  }
}

4.3D回転のアニメーション

<!-- HTMLコード -->
<div class="rotate">
  <p>rotate</p>
</div>
/* CSSコード */
.rotate {
  width: 100px;
  height: 100px;
  text-align: center;
  background: #eee;
  animation: rotate 4s linear infinite;
  margin: 10px;
}

@keyframes rotate {
  0% {
    transform: rotate3d(1,1,1,0deg);
  }
  100% {
    transform: rotate3d(1,1,1,360deg);
  }
}

文字や画像を回転表示&回転アニメーションでWebサイトをおしゃれに!

今回は、文字や画像などの要素を回転させる「transform:rotate()」プロパティの使い方について解説しました。

以下は、この記事のまとめです。

  • transform:rotate()は、2Dだけでなく立体的な3D回転も可能!
  • 回転アニメーションには、transitionやhoverを使用する
  • ループする回転アニメーションには、@keyframesを使用する

回転アニメーションは、ボタンのクリック率や、コンテンツの長期滞在時間の向上に繋がる可能性があります。

transform:rotate()プロパティを使いこなして、必要な要素を回転表示させたり、回転アニメーションをつけてみましょう!

関連記事

資料請求

  • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

    DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

    資料をダウンロードする
  • IT技術がもたらす3つの変化と身につけるべきスキル

    IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

    資料をダウンロードする
  • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

    働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

    資料をダウンロードする

© 2024 WEBCAMP MEDIA Powered by AFFINGER5