問題:
タッチ デバイスが Web サイトにアクセスすると、次が発生します。 hover CSS スタイルは、クリックまたはタップでトリガーされます。これにより、気が散ったり、インタラクティブな要素にアクセスできなくなったりする可能性があります。
目的:
各宣言のセレクターを知らずに、タッチ デバイスの :hover CSS 宣言をすべて削除または無視します。
解決策:
JavaScript を使用して :hover を含むすべての CSS ルールを削除します。
<code class="javascript">if (hasTouch()) { for (var si in document.styleSheets) { for (var ri = styleSheet.rules.length - 1; ri >= 0; ri--) { if (styleSheet.rules[ri].selectorText.match(':hover')) { styleSheet.deleteRule(ri); } } } }</code>
長所:
:hover ルールを含めるには @media ブロックを使用します。
<code class="css">@media (hover: hover) { a:hover { color: blue; } }</code>
長所:
タッチ イベントを検出JavaScript を使用し、条件付きで CSS クラスを追加します。
<code class="js">if (!hasTouch()) document.body.className += ' hasHover'</code>
<code class="css">body.hasHover a:hover { color: blue; }</code>
長所:
マウス カーソルとタッチ イベントに基づいてホバー スタイルを有効または無効にします。
<code class="js">function watchForHover() { document.addEventListener('touchstart', updateLastTouchTime, true) document.addEventListener('touchstart', disableHover, true) document.addEventListener('mousemove', enableHover, true) }</code>
長所:
以上がタッチデバイスで :hover スタイルを効果的に無効にする方法: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。