【问题标题】:Does css hover work on mobile devices?css hover 可以在移动设备上使用吗?
【发布时间】:2011-01-26 12:19:48
【问题描述】:

css hover 是否适用于移动设备?我有一个 CSS 悬停类,它在常规网络浏览器上运行良好,但在移动浏览器上不起作用。

【问题讨论】:

标签: css mobile hover


【解决方案1】:

:hover 伪类需要一个指向(图形输入)设备,能够区分指向选择/激活的动作。 通常在具有触摸界面没有前者,只有后者。还有一些笔界面只允许激活,不能指点。

:hover 伪类在用户指定一个元素(使用一些指针设备)但不激活它时应用。例如,当光标(鼠标指针)悬停在元素生成的框上时,可视用户代理可以应用此伪类。不支持交互式媒体的用户代理不必支持这个伪类。一些支持交互式媒体的符合标准的用户代理可能无法支持此伪类(例如笔设备)。

W3C: CSS 2.1: Selectors, dynamic pseudo-classes

所以,回答您的问题:这取决于设备,但可能不会。不要依赖它。随着触摸屏设备的迅速普及,您将失去所有仅指点的事件。

【讨论】:

  • 也许新技术会带回仅点事件。例如,请参阅 thisthis 链接。
  • 我知道 Wacom 正在努力解决这个问题,但您真的希望这些在可预见的未来会得到广泛使用吗?
  • 是的!您是否期望触摸屏手机(或任何其他当前技术)会如此迅速地获得广泛使用? :)
  • 这么快?大多数原始研究(也涉及手势)发生在 80 年代。从那时起已经有几十年了。此外,触摸设备已经拥有除了众所周知的旧 WIMP 之外的可用交互范例。目前尚不清楚我们是否必须为了它而延续它。
【解决方案2】:

叹息。似乎没有人回答这个问题实际上是在真实设备上尝试过的。在许多情况下,它确实有效。第一次点击相当于悬停。

更多信息在这里:http://designshack.net/articles/css/are-hover-events-extinct/

【讨论】:

  • 当然,如果点击某些东西没有任何作用,而只有悬停有作用,那很好。但在大多数情况下,我看到:hover 会触发一些辅助信息、工具提示或类似信息,关于单击时会发生什么。由于您无法在移动设备上将两者分开,因此丢失了非常大的用例。
  • @Јοеу - 我同意,但值得知道 :hover 在触摸设备上并非完全失败。
  • @zach-saucier 我最近没有做任何测试。
  • 只想补充一点,:hover在移动设备上非常不可靠。正如@andybak 所说,它确实有效,但要使其可靠,就必须使用另一种方法来解决这个问题。
【解决方案3】:

提问者所说的“css hover 是否适用于移动设备?”是什么意思?

他显然不是字面意思,因为在移动设备上没有悬停这样的东西,所以它不能工作。

如果他的意思是“在移动设备上,如果我以悬停方式点击对象,会发生什么事情吗?”答案是肯定的,但发生的情况因设备/浏览器而异。

特别是在 iPhone/Safari 和 Android 上,响应就像您编写了一个带有样式更改的 OnClick() 事件处理程序,并且这种情况会持续存在,直到您点击另一个对象。在 Windows phone 上,当您的手指在手机上按下时,样式会发生变化,然后在您松开它时恢复。

您可以在我设置的测试站点davidleader.net/mobiledemo.html检查您的设备。

【讨论】:

    【解决方案4】:

    除非设备可以检测到有人将手指悬停在屏幕上,即将点击。 :)

    【讨论】:

    • 不过,对于那些几乎没有用的功能的手指,由于这些设备的大小,您很可能会将手指放在任何会对悬停做出反应的东西上。除非你的手指是半透明的,否则很难看到 ;-)
    • +1 即将到来!例如,请参阅 thisthis 链接。
    【解决方案5】:

    这取决于移动设备中使用的浏览器。移动设备请参考Quirks Mode,看看你的浏览器/平台是否会实现。

    【讨论】:

      【解决方案6】:

      根据我自己的经验,它在我的 iphone4 上运行良好,无论是什么浏览器(safari 或 chrome),但在我的带有 chrome 的 nexus10 上不能正常运行......

      我使用:hover 来实现菜单。当我说“它有效”时,我的意思是第一次触摸的行为就像桌面上的悬停一样,第二次触摸的行为就像点击一样。 当我说“它不起作用”时,我的意思是触摸的行为就像直接点击一样......

      【讨论】:

        【解决方案7】:

        我会说不,因为您不会将鼠标悬停在移动界面中。如果在触摸屏上,您只需按下即可。否则,您只需浏览链接。

        【讨论】:

          【解决方案8】:

          不会在触摸屏设备上发挥它的魔力,但它确实适用于用户使用某些箭头键导航的手机(或亚马逊 Kindle)

          【讨论】:

            【解决方案9】:

            也适用于黑莓风暴 1 设备,因为它们具有触摸和点击事件,因为它们具有绒面触感屏幕。

            【讨论】:

              【解决方案10】:

              是的,它有。如果你不相信,试试看。 i)在 Codepen 或您拥有帐户的其他堆栈上编写 Hover Css。 ii) 保存您的工作。 [很容易看出是否添加了'border-bottom:1px dotted black'] iii) 在您的手机、平板电脑或任何您想证明的东西上打开它。 [你的笔存的,介意的是CodePen]

              因此,您会得到答案。不要太相信理论,只是实践并证明它。

              【讨论】:

                【解决方案11】:

                :hover 与 android 默认浏览器配合使用,但是(对于用户而言)触发悬停而不同时触发点击确实很棘手。

                【讨论】:

                  猜你喜欢
                  • 2016-12-02
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-09-30
                  • 2021-03-17
                  • 1970-01-01
                  • 2023-03-23
                  • 2018-06-17
                  相关资源
                  最近更新 更多