克服触摸屏设备上的 :hover 怪癖
问题: :hover CSS 样式在触摸设备上无意触发,导致不良效果。
解决方案:实施全面的策略来禁用或忽略触摸屏平台上的 :hover 声明。
快速而肮脏:JavaScript 删除
对于务实的方法, JavaScript 可用于删除所有 :hover 样式。请注意,样式表必须托管在同一域上,这可能会妨碍混合触摸/鼠标设备上的用户体验。
<code class="js">function hasTouch() { // Check for touch capabilities } if (hasTouch()) { // Remove :hover stylesheets }</code>
基于 CSS 的解决方案
媒体查询:
<code class="css">@media (hover: none) { a:hover { color: inherit; } }</code>
但是,此解决方案仅适用于 iOS 9.0 或 Android 5.0 设备。
条件规则:
<code class="css">body.hasHover a:hover { color: blue; }</code>
这需要前置所有 :hover 规则都具有基于触摸屏检测添加或删除的类(例如 hasHover)。
最佳检测:JavaScript 和 CSS
最强大的解决方案将 JavaScript 触摸检测与 CSS 相结合条件规则。
<code class="js">function watchForHover() { // Detect touch and toggle hasHover class }</code>
<code class="css">body.hasHover a:hover { color: blue; }</code>
此方法在检测到鼠标时启用悬停效果,并在触摸时禁用它们。
实现建议
对于现代浏览器,建议使用类组合 JavaScript 和 CSS 条件规则。对于旧版浏览器,基于 JavaScript 删除 :hover 样式是一个可行的选择。
其他资源:
- [GitHub 示例](https:// jsfiddle.net/57tmy8j3/)
以上是如何防止触摸屏设备上出现不需要的 :hover 效果?的详细内容。更多信息请关注PHP中文网其他相关文章!

这是我们在形式可访问性上进行的小型系列中的第三篇文章。如果您错过了第二篇文章,请查看“以:focus-visible的管理用户焦点”。在

CSS盒子阴影和轮廓属性获得了主题。让我们查看一些在真实主题中起作用的示例,以及我们必须将这些样式应用于WordPress块和元素的选项。

Svelte Transition API提供了一种使组件输入或离开文档(包括自定义Svelte Transitions)时动画组件的方法。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3汉化版
中文版,非常好用

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver Mac版
视觉化网页开发工具