CSS hover在移动设备上能够生效吗?我有一个CSS hover类,在常规的Web浏览器中正常工作,但在移动浏览器上却不起作用。
:hover
伪类需要一个有指针(图形输入)设备,能够区分“指向”和“选择/激活”操作的输入设备。通常,在触摸界面的移动设备上你没有前者而只有后者。此外,一些笔式输入设备只允许激活而不是指向。
因此,回答你的问题:它取决于设备,但可能不行。不要依赖它。随着触摸屏设备快速普及,你将失去全部仅限指向的事件。
:hover
伪类应用于用户指定元素(使用某种指针设备),但未激活该元素时。例如,当光标(鼠标指针)悬停在元素生成的框上时,视觉用户代理可以应用这个伪类。不支持交互媒体的用户代理不必支持此伪类。一些支持交互媒体的合规用户代理可能无法支持此伪类(例如,笔式设备)。
唉,看来没有人回答这个问题时真正在实际设备上尝试过。在许多情况下,它确实有效。第一次点击的作用类似于悬停。
更多信息请参见:http://designshack.net/articles/css/are-hover-events-extinct/
:hover
触发了一些辅助信息,例如工具提示或类似的内容,在您单击时提供有关所发生的事情的信息。由于在移动设备上无法将两者分开,因此一个非常重要的用例就会丢失。 - Joey:hover
的可靠性非常低。正如@andybak所说,它确实有效,但要使其可靠,就必须使用另一种方法来解决这个问题。 - magnudae“Does css hover work on mobile devices?”这个问题的提问者是什么意思?
很明显,他并不是字面上的意思,因为移动设备上没有悬停这个功能,所以它不能正常工作。
如果他的意思是“在移动设备上,如果我点击一个带有悬停样式的对象,会发生什么?”答案是肯定的,但是具体情况取决于设备/浏览器。
具体来说,在iPhone/Safari和Android上,响应就像你编写了一个OnClick()事件处理程序并带有样式更改一样,并且这种变化会持续到你点击另一个对象。在Windows手机上,样式更改会在你按住手机屏幕时发生,然后在释放时恢复。
您可以在我设置的测试网站上检查您的设备,该网站位于davidleader.net/mobiledemo.html。
从我的个人经验来看,无论是使用safari还是chrome浏览器,在我的iphone4上都能正常工作,但在我的nexus10上使用chrome浏览器时无法正常工作...
我使用:hover
来实现菜单。当我说“它工作正常”时,我的意思是第一次触摸行为就像在桌面上的悬停,而第二次触摸行为就像点击。
当我说“它不起作用”时,我的意思是触摸行为直接像点击一样...
我会说不,因为在移动界面上你不会悬停。如果是触摸屏,你只需点击即可。否则,你只需通过链接进行导航。
在触摸屏设备上无法发挥其魔力,但在用户使用某些箭头键进行导航的移动设备(或亚马逊 Kindle 上)可以正常工作。
同样适用于黑莓风暴1设备,因为它们具有触摸和点击事件,这归功于其拟触觉屏幕。
是的,它确实有。如果你不相信,试一试。 i) 在 Codepen 或其他你有账号的堆栈上编写 Hover Css。 ii) 保存你的工作。[如果添加 'border-bottom: 1px dotted black' 方便查看] iii) 在你想要证明的手机、平板电脑或其他设备上打开它。[笔记保存在 CodePen 上]
结果就会让你得到答案。不要太相信理论,只需实践并证明它。