CSSのtransitionが効かない原因と対処法【初心者向け】

初心者向けにCSSのtransitionが効かない原因について解説しています。transitionプロパティで要素の変化の時間を調節することが出来て、アニメーションのような形で表示することが出来ます。便利なtransitionですが効かない場合もありますので、書き方のルールを覚えましょう

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

CSSのtransitionが効かない原因について解説します。transitionプロパティを使うと変化の速度を調節することが出来てアニメーションのように表示することが出来ます。

CSSについてそもそもよく分からないという方は、CSSの書き方について解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのWebデザインオンラインブートキャンプのカリキュラムをもとに執筆しています。

 

田島悠介

今回は、CSSに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

CSSのtransitionが効かない原因について詳しく説明していくね!

大石ゆかり

お願いします!

 

transitionが効かない原因

transitionとは変化するまでの時間などを指定できる、プロパティです。

ボタンにマウスカーソルを乗せたときに、色や大きさなどが変わる時間を設定するときに使われいてアニメーションのように表示することが出来ます。

transitionは以下のように書きます。

セレクタ名 {
    transition-property:値;
}

指定できる値は、

  • all:トランジションの適用できる全てのプロパティを指定することができます。
  • none:どのプロパティも変化しません。
  • プロパティ名:トランジションを適用するプロパティ名を指定します。カンマ区切りで複数指定すること可能です。

transitionが効かない原因の多くは、hoverイベントの所にtransitionを記述してしまうのが多いので、気をつけましょう。

アニメーション的動きが実現できるので、身につけておくと楽しくて便利です。

 

transitionの書き方

前段にも記述しましたが、必ずhoverイベントの所にtransitionを記述はしないようにしましょう。

hoverイベントを動かそうにも、その要素をhover出来ない状態にしてしまうからです。

HTML

<p>テキスト</p>
<p>テキスト</p>
<p>テキスト</p>

 

CSS

p {
  width:70px;
  background-color:red;
  transition-duration: 2s;
  transition-property:width;
}
p:hover {
  width:200px;
  background-color:blue;
}

 

[PR] HTML/CSSで挫折しない学習方法を動画で公開中

実際に書いてみよう

ここでは簡単なコードを書きました。

基礎さえ身につけておけば、色々なアニメーション的な動きを実現することができるので下記を参考にしてみてください。

 

<p>テキスト</p>
<p>テキスト</p>
<p>テキスト</p>

p {
  width:70px;
  background-color:red;
  transition-duration: 2s;
  transition-property:width;
}
p:hover {
  width:200px;
  background-color:blue;
}

解説

pタグに横幅70pxと背景が赤になるよう指定しています。次にtransitionの効果が2秒になるよう指定しています。

続いて、transition-property:widthは、widthのみtransitionが効くようにしています。

:hoverでは、マウスオーバーすると、横幅が200pxになり、背景色が青になるよう指定しています。

 

監修してくれたメンター

大堀 翔一郎(おおほりしょういちろう)

IT商社にてコーポレートサイト、ブランドサイトのディレクター兼デザイナー兼コーダー。

大学卒業後、WEB制作会社にでデザイナーとして入社し大手企業のサイト制作やブランドサイトの制作に携わってきました。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyでは初心者でも最短4週間でオリジナルWebサイトを公開できるWebデザインオンラインブートキャンプを開催しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。