X
  1. TOP
  2. CSSのホバーを工夫するようになった話
2024.04.26

CSSのホバーを工夫するようになった話

スマホは大きければ大きいほどいい派のコーダー、オガワです。
(機種変をするたびに大きくなってます笑)

スマホの普及率が上がったことで、スマホ優先のサイトも増えてきましたよね!
私自身も作る頻度が上がってきたことを感じているのですが…
その時、ちょっと気になるのがホバーの動き。

今回はそのホバーを工夫するようになった話をしたいと思います!

:hoverのみだと実機でちょっと不恰好に感じる

PCのコーディングをする時、リンクやボタンの要素に「:hover」でホバー(マウスオン)の動きを入れることが多くありませんか?
スピカデザインでも、押せる要素を作る時には必ず何かしらのホバーを入れてください、としています。
ホバーの動きをつけることで、PCでは押せる要素がわかりやすく綺麗なサイトに仕上がります!
では、それをスマホの実機で見た時はどうでしょう?

そのままタグに「:hover」で動きをつけると、遷移前に若干不透明度が下がったりボタンの矢印が微妙に動いたり…
変化速度が早い場合はあまり気になりませんが、ゆっくりと動かしている場合は「なんか微妙に動いたな…?」という感じになってしまいます。
最近それが不恰好だなと感じるようになったので、狭い幅ではhoverを切るようにしたのですが、一つ一つ切るのは結構な手間。
もっと楽な良い方法はないか?と調べてみました。

見つかったいい記述方法

色々調べたところ、なんとメディアクエリにホバーのみという書き方がありました!

@media (hover: hover) {
   transition: 0.5s;
   &:hover{
       opacity: 0.5;
   }
}

このように書くと、「ホバーができる場合のみ」という指定をすることができます。

普段メディアクエリを書くのはレスポンシブの幅の指定のみのことが多かったので、今はホバーの判定までできるようになったんだ!とちょっと感動しました!笑
メディアクエリの中にホバーの動きを書くことで、ipadやスマホのタッチデバイスの時には書いた指定が効かないので、変に不透明度が下がったりアニメーションがついてしまうことはありません。

まとめ

ここ数年でCSSのみでできることがどんどん広がってきていて、CSS好きの自分にとっては追いきれないことが嬉しい悩みにもなってます!笑
ブラウザごとに使える / 使えないがあるプロパティがまだまだあるので、来年はもっと色々使えるようになって便利になると良いですね!

この記事をシェアする

関連記事

おすすめ記事

株式会社スピカデザイン

渋谷のWEB制作会社「スピカデザイン」の現役コーダー達が、WEB制作のヒントになるような情報をお届けします。

© 2020 spiqa design

×